/* 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); } }