/* link action */
var leftCoords = new Array();
var leftName = new Array();
var leftRule = new Array();
var rightCoords = new Array();
var rightName = new Array();
var rightRule = new Array();
var wRatio = 1.0;
var hRatio = 1.0;
var alphaPng = "pix/red40.png";
var leftImgName = "";
var leftImgDir = "";
var centerImgName = "";
var centerImgDir = "";
var rightImgName = "";
var rightImgDir = "";
var newDirLinkload = false;
var xmlHttp;
function set_link(){
wRatio = iw / bigwidth;
hRatio = ih / bigheight;
var x1, y1, w1, h1;
if(leftLink.length > 0){
set_leftLink();
var inhtml1 = "";
for(var i = 0;i < leftCoords.length;i++){
x1 = Math.round(leftCoords[i][0] * wRatio) + 1;
y1 = Math.round(leftCoords[i][1] * hRatio) + 1;
w1 = Math.round((leftCoords[i][2]-leftCoords[i][0])*wRatio);
h1 = Math.round((leftCoords[i][3]-leftCoords[i][1])*hRatio);
inhtml1 += "
";
inhtml1 += "onClick=\"link_click(0,"+i+");\">";
inhtml1 += "
";
}
document.getElementById("b2lkleft").innerHTML = inhtml1;
}
if(rightLink.length > 0){
set_rightLink();
var inhtml2 = "";
for(var i = 0;i < rightCoords.length;i++){
x1 = Math.round(rightCoords[i][0] * wRatio) + 1;
y1 = Math.round(rightCoords[i][1] * hRatio) + 1;
w1 = Math.round((rightCoords[i][2]-rightCoords[i][0])*wRatio);
h1 = Math.round((rightCoords[i][3]-rightCoords[i][1])*hRatio);
inhtml2 += "";
inhtml2 += "onClick=\"link_click(1,"+i+");\">";
inhtml2 += "
";
}
document.getElementById("b2lkright").innerHTML = inhtml2;
}
}
function set_newPageLink(newlinkload){
if(newDirLinkload == true){
request_alink();
}
else{
set_linkall();
}
}
function set_linkall(){
rightCoords = new Array();
rightName = new Array();
rightRule = new Array();
wRatio = iw / bigwidth;
hRatio = ih / bigheight;
var x1, y1, w1, h1;
var k = 0;
if(rightLink.length > 0){
var inhtml2 = "";
var tstr = "";
for(var i = 0;i < rightLink.length;i++){
aaa = rightLink[i].split("\t");
if(aaa[0] != centerImgName) continue;
rightCoords[k] = strToRect(aaa[1]);
rightName[k] = aaa[2];
rightRule[k] = aaa[3];
x1 = Math.floor(rightCoords[k][0] * wRatio);
y1 = Math.floor(rightCoords[k][1] * hRatio);
w1 = Math.floor((rightCoords[k][2]-rightCoords[k][0])*wRatio);
h1 = Math.floor((rightCoords[k][3]-rightCoords[k][1])*hRatio);
tstr = "";
tstr += "onClick=\"link_click(1,"+k+");\">";
tstr += "
\n";
inhtml2 += tstr;
k++;
}
document.getElementById("b2lk"+leftnum).innerHTML = ""; //inhtml1;
document.getElementById("b2lk"+centernum).innerHTML = inhtml2;
document.getElementById("b2lk"+rightnum).innerHTML = ""; //inhtml3;
}
}
function link_over(lr, n){
var tstr = (lr == 0) ? leftName[n] : rightName[n];
message.innerHTML = "" + tstr + "";
message.style.visibility = "visible";
message.style.left = evt.clientX + 10 + document.documentElement.scrollLeft + "px";
message.style.top = evt.clientY + 15 + document.documentElement.scrollTop + "px";
}
function link_move(lr, n){
message.style.left = evt.clientX + 10 + document.documentElement.scrollLeft + "px";
message.style.top = evt.clientY + 15 + document.documentElement.scrollTop + "px";
}
function link_out(){
message.innerHTML = "";
message.style.visibility = "hidden";
}
function link_click(lr, n){
var rule = (lr == 0) ? leftRule[n] : rightRule[n];
var sdir = (lr == 0) ? leftImageDir : rightImageDir;
var pos = rule.indexOf("]");
if(pos == -1){
window.open(rule, '');
}
else{
var head = rule.substring(0,pos+1);
var body = rule.substring(pos+1);
if(head == "[page]"){
if(showstart > 0){
var npage = parseInt(body) + showstart - 1;
window.location = linkwDirUrl + "&cpage="+npage;
}
else{
window.location = linkwDirUrl + "&cpage="+body;
}
}
else if(head == "[mp3]"){
if(body.substring(0,1) == "*") window.location = webServer + "/flash/" + body.substring(1);
else window.location = webCataPath + "/" + sdir + "/sound/" + body;
}
else if(head == "[sta]" || head == "[flv]" || head == "[swf]"){
var idx = body.indexOf("||");
if(idx == -1) window.location = webServer + "/flash/" + body;
else window.location = webServer + "/flash/" + body.substring(idx+2);
}
else if(head == "[win]"){
pos = body.indexOf("]");
if(pos > -1){
var head2 = body.substring(1, pos);
var myvar = head2.split(",");
body = body.substring(pos+1);
}
newLink(myvar[0], myvar[1], myvar[2], body);
}
}
}
function set_leftLink(){
var k = 0;
for(var i = 0;i < leftLink.length;i++){
aaa = leftLink[i].split("\t");
leftCoords[k] = strToRect(aaa[1]);
leftName[k] = aaa[2];
leftRule[k] = aaa[3];
k++;
}
}
function set_rightLink(){
var k = 0;
for(var i = 0;i < rightLink.length;i++){
aaa = rightLink[i].split("\t");
rightCoords[k] = strToRect(aaa[1]);
rightName[k] = aaa[2];
rightRule[k] = aaa[3];
k++;
}
}
function strToRect(s){
var pointstr = s.split(",");
faces = pointstr.length;
var k = 0;
var x1 = parseInt(pointstr[0]);
var y1 = parseInt(pointstr[1]);
var x2 = parseInt(pointstr[2]);
var y2 = parseInt(pointstr[3]);
if(faces > 4){
var tx, ty;
for(var i = 2;i < faces;i+=2){
tx = parseInt(pointstr[i]);
ty = parseInt(pointstr[i+1]);
if(x1 > tx) x1 = tx;
if(y1 > ty) y1 = ty
if(x2 < tx) x2 = tx;
if(y2 < ty) y2 = ty;
}
}
return new Array(x1, y1, x2, y2);
}
// XMLHttpRequest
function request_alink(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", webCataPath + "/" + rightImageDir + "/alink.txt");
xmlHttp.send();
}
// readyState (0:not initialized, 1:opened, 2:yet transmit, 3:get response, 4:finished before get response)
function handleStateChange() {
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200) {
reset_rightLink(xmlHttp.responseText);
set_linkall();
}
else if(xmlHttp.status == 404) ;
else{
alert("server response : " + xmlHttp.status);
}
}
}
function reset_rightLink(str){
rightLink.length = 0;
str = str.replace(/^\s*/,'').replace(/\s*$/,'');
if(str == "") return;
str = str.replace(/\r\n/g,"\n");
str = str.replace(/\r/g,"\n");
var k = 0;
var linestr = str.split("\n");
for(var i = 0;i < linestr.length;i++){
if(linestr[i] != ""){
rightLink[k] = linestr[i];
k++;
}
}
}
function newLink(winSet, width, height, docu){ // link from swf
if(winSet == 1){
property = "toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=no,copyhistory=no,";
property += "width=" + width +", height=" + height + ", left=1, top=1";
window.open(docu, '', property);
}
else{
property = "toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes,copyhistory=no,";
property += "width=" + width +", height=" + height + ", left=1, top=1";
window.open(docu, '', property);
}
}