function popup(mylink, windowname)
{
    if (! window.focus)
    {
        return true;
    }
    var href;
    if (typeof(mylink) == 'string')
    {
        href=mylink;
    }
    else
	{
	    href=mylink.href;
	}
    window.open(href, windowname, "width=360, height=180, scrollbars=yes");
    return false;
}

function popitup(mylink)
{
    if (! window.focus)
    {
        return true;
    }
    var href;
    if (typeof(mylink) == 'string')
    {
        href=mylink;
    }
    else
    {
	    href=mylink.href;
    }
    window.open(href, 'demo', "width=820, height=650, scrollbars=no");
    return false;	
}
function popupDemo(mylink, windowname)
{
    if (! window.focus)
    {
        return true;
    }
    var href;
    if (typeof(mylink) == 'string')
    {
        href=mylink;
    }
    else
	{
	    href=mylink.href;
	}
    window.open(href, windowname, "width=1024, height=768, scrollbars=yes");
    return false;
}

function gotocase(caseid)
{
    window.open("/main?show=cases&caseid="+caseid, "casewin", "top=0, left=0, width=1000, height=700, scrollbars=yes, resizable=yes"); 
}


function showLayer(layerName)
{
    if (document.getElementById) // Netscape 6 and IE 5+
    {
        var targetElement = document.getElementById(layerName);
        //var shadowElement = document.getElementById(shadowLayerName);
        //targetElement.style.top = shadowElement.style.top;
        targetElement.style.visibility = 'visible';
    }
}


function hideLayer(layerName)
{
    if (document.getElementById) 
    {
        var targetElement = document.getElementById(layerName);
        targetElement.style.visibility = 'hidden';
    }
}

/*
function mediaPlayerPlay(mediaPlayer, video)
{
   if (navigator.appName == "Netscape") 
    {
        mediaPlayer.getControls().play();
    } 
    else 
    {
        mediaPlayer.play();
        
        
    }
}


function mediaPlayerStop(mediaPlayer, video)
{
    if (navigator.appName == "Netscape") 
    {
        mediaPlayer.getControls().stop();
    } 
    else 
    {
        mediaPlayer.stop();   
        if (video == "Topicscape.wmv")
        {
            window.open("../picviewer.php?pic=still.jpg","picViewer","top=0, left=0, width=564, height=390, scrollbars=no, resizable=no");
        }
    }
}
*/

function PlayVideo (video)
{
	document.Player.URL = video;
}

function StopVideo (video)
{
    if (video == "Topicscape.wmv")
    {
       document.Player.controls.currentPosition=7;
       window.open("picviewer.php?pic=still.jpg","picViewer","top=0, left=0, width=564, height=390, scrollbars=no, resizable=no");
    }
    else
    {
        document.Player.controls.stop();   
    }
}


function checkFaqForm(msg1)
{
    var faq = document.faqForm.faq.value;
    faq = trim(faq);
    
    if (faq.length<1)
    {
        alert(msg1);
        return false;   
    }
    else
    {
        document.faqForm.submit.disabled = true;
        return true; 
    } 
}

function trim(s) 
{
  // Remove leading spaces and carriage returns  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function getFilename(path) 
{
	if (path.indexOf('\\') == -1) {
		return path;
	}
	return path.substring(path.lastIndexOf('\\') + 1, path.length);
}

function checkBugListForm(msg1, msg2, msg4)
{
    var bug_user = trim(document.bugListForm.bug_user.value);
    var bug_category_id = trim(document.bugListForm.bug_category_id.value);
    var bug_desc = trim(document.bugListForm.bug_desc.value);
    var msg = trim(document.bugListForm.msg.value);
      
    if (bug_user.length<1)
    {
        alert(msg1);
        //popup('login.php', 'Login_in_page');
        return false;   
    }
    else if (bug_desc.length<1)
    {
        alert(msg2);
        return false;   
    }
    else if (bug_category_id=='0')
    {
        alert(msg4);
        return false;   
    }
    else
    {
        return true;   
    } 
}

/*function printCurrentPage()
{
    window.print(); 
}*/

function sizeMe(size) 
{ 
    //parent.window.moveTo(0,0);
    if (size=='1')
    {
        //parent.window.resizeTo(screen.availWidth,screen.availHeight);
        //parent.window.width=screen.availWidth;
        //parent.window.height=screen.availHeight;
    }
    else if (size=='2') //support
    {
        //parent.window.resizeTo(screen.availWidth-150,screen.availHeight);
        //parent.window.width=screen.availWidth-150;
        //parent.window.height=screen.availHeight; 
    }
}    

function checkEmail(email) 
{
    //a@bb.cc
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function checkContactUsForm(formMode, msg1, msg2, msg3, msg4, msg5)
{
    var email_from = trim(document.contactUsForm.email_from.value);
    var email_subject = trim(document.contactUsForm.email_subject.value);
    var real_email_message = trim(document.contactUsForm.real_email_message.value);
    var captcha = trim(document.contactUsForm.captchastring.value);
    
	/*if (instr (email_subject,"\"")
	{
		email_subject.replace ("\"","\\\"");
		//document.contactUsForm.email_subject.value=email_subject;
	}*/
	
    if (email_from.length<1 || !checkEmail(email_from))
    {
        alert(msg1);
        return false;   
    }
    else if (email_subject.length<1)
    {
        alert(msg2);
        return false;   
    }
    else if (real_email_message.length<1)
    {
        alert(msg3);
        return false;   
    }
    else if (captcha.length < 1) 
    {
    	alert(msg5);
    	return false;
    }
    else if (formMode == 'support')
    {
        var upfile = trim(document.contactUsForm.upfile.value); 
        var requiredfile = trim(document.contactUsForm.requiredfile.value); 
        
        if (upfile.length<1 || requiredfile.length<1)
        {
           alert(msg4);
           return false;
        }
        else if (! compareFilename(upfile, requiredfile))
        {
           alert(msg4);
           return false;
        }
    }
    else
    {
        document.contactUsForm.submit.disabled=true;
        return true;  
    } 
}

function compareFilename(path1, path2) 
{
	// one of the paths contains only a file name (IE 7)!!
	// compare only the filename
		
	return (getFilename(path1) == getFilename(path2));
}

function checkbetaloginform(msg1,msg2,msg3)
{
    var username = document.loginForm.user;
    var password = document.loginForm.pass;
	var captcha = document.loginForm.captchastring;
    var mode = document.loginForm.mode;
	

	if (captcha.value.length<1)
	{
        alert(msg3);
        captcha.focus();
        return false;     
	}
    else if (username.value.length<1)
    {
        alert(msg1);
        username.focus();
        return false;  
    }
    else if (password.value.length<1)
    {
        alert(msg2);
        password.focus();
        return false;     
    } 
    else 
    {
        if (mode.value == 'login' || mode.value == 'changePassword')
        {
            return true;          
        }  
        else
        {
            document.loginForm.user.focus();
            return false;   
        }      
        //return true;
    }
}

function checkacceptdisable()
{
    if (document.licenceForm.accept.checked)
    {
        document.licenceForm.doAccept.disabled = false;
    }
    else
    {
        document.licenceForm.doAccept.disabled = true;
    }   
}
        
function checkchangepasswordform(msg1,msg2,msg3)
{
    var oldpassword = document.changePasswordForm.oldpassword;
    var newpassword = document.changePasswordForm.newpassword;
    var confirmpassword = document.changePasswordForm.confirmpassword;

    if (oldpassword.value.length<1)
    {
        alert(msg1);
        oldpassword.focus();
        return false;     
    } 
    else if (newpassword.value.length<1)
    {
        alert(msg2);
        newpassword.focus();
        return false;     
    } 
    else if (confirmpassword.value.length<1)
    {
        alert(msg3);
        confirmpassword.focus();
        return false;     
    }
    else
    {
        return true;
    } 
}

/*****************************
Glowing Text (start)
******************************/

var flashlinks=new Array();
var counter=0;

function changelinkcolor()
{
    if (counter<4)
    {
        for (i=0; i< flashlinks.length; i++)
        {
            var flashtype=document.getElementById? flashlinks[i].getAttribute("flashtype")*1 : flashlinks[i].flashtype*1;
            var flashcolor=document.getElementById? flashlinks[i].getAttribute("flashcolor") : flashlinks[i].flashcolor;
            if (flashtype==0)
            {
                if (flashlinks[i].style.color!=flashcolor)
                    flashlinks[i].style.color=flashcolor;
                else
                    flashlinks[i].style.color='';
        }
        else if (flashtype==1)
        {
            if (flashlinks[i].style.backgroundColor!=flashcolor)
                flashlinks[i].style.backgroundColor=flashcolor;
            else
                flashlinks[i].style.backgroundColor='';
            }
        }
        counter++;
    }
}

function init()
{
    var i=0;
    if (document.all)
    {
        while (eval("document.all.flashlink"+i)!=null)
        {
            flashlinks[i]= eval("document.all.flashlink"+i);
            i++;
        } 
    }
    else if (document.getElementById){
        while (document.getElementById("flashlink"+i)!=null){
            flashlinks[i]= document.getElementById("flashlink"+i);
            i++;
        }
    }
    setInterval("changelinkcolor()", 500);
}

function startGlow()
{
    if (window.addEventListener)
        window.addEventListener("load", init, false);
    else if (window.attachEvent)
        window.attachEvent("onload", init);
    else if (document.all)
        window.onload=init;
}

/*****************************
Glowing Text (end)
******************************/


function textAreaCounter(field, maxlength, errorBehaviour, validBehaviour) {
  if (field.value.length > maxlength)
  {
    field.value = field.value.substring(0, maxlength);
    //alert('The number of characters exceed ' + maxlength);
    eval(errorBehaviour);
    return false;
  }
  else 
  {
    eval(validBehaviour);
  }
}
/*
var menuobj=document.getElementById? document.getElementById("describe") : document.all? document.all.describe : document.layers? document.dep1.document.dep2 : ""

function showit(which){
clear_delayhide()
thecontent=(which==-1)? "" : submenu[which]
if (document.getElementById||document.all)
menuobj.innerHTML=thecontent
else if (document.layers){
menuobj.document.write(thecontent)
menuobj.document.close()
}
}

function resetit(e){
if (document.all&&!menuobj.contains(e.toElement))
delayhide=setTimeout("showit(-1)",delay_hide)
else if (document.getElementById&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhide=setTimeout("showit(-1)",delay_hide)
}

function clear_delayhide(){
if (window.delayhide)
clearTimeout(delayhide)
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
*/

function checkApplyBetaForm()
{
    f = document.applyBetaForm;
    person_name = (trim(f.person_name.value).length>0) ? trim(f.person_name.value) : "(empty)";
    username = trim(f.username.value);
    password = f.password.value;
    confirm_password = f.confirm_password.value;
    email_address = trim(f.email_address.value);
    windows_version = f.windows_version;
    windows_version_others = trim(f.windows_version_others.value);
    processor_speed = trim(f.processor_speed.value);
    graphic_card_manufacturer_model = (trim(f.graphic_card_manufacturer_model.value).length>0) ? trim(f.graphic_card_manufacturer_model.value) : "(empty)";
    screen_resolution = f.screen_resolution;
    screen_resolution_others = trim(f.screen_resolution_others.value);
    memory = f.memory;
    memory_others = trim(f.memory_others.value);
    computer = f.computer;
    mind_mapping = f.mind_mapping.value;
	search_string = f.search_string.value;
    textok = f.textok.value;
    opengl_level = f.opengl_level.value;
   
    msg1 = f.msg1.value;
    msg2 = f.msg2.value;
    msg3 = f.msg3.value;
    msg4 = f.msg4.value;
    msg5 = f.msg5.value;
	
    empty= f.empty.value;
    
    if (username.length < 1)
    {
        alert(msg1);
        f.username.focus();
        return false;
    }    
    else if (password.length < 1)
    {
        alert(msg2);
        f.password.focus();
        return false;
    }
    else if (processor_speed.length < 1)
    {
        alert(empty);
        f.processor_speed.focus();
        return false;
    }
    else if (opengl_level.length < 1)
    {
        alert(empty);
        f.opengl_level.focus();
        return false;
    }
    else if ( (windows_version[0].checked==false && windows_version[1].checked==false && windows_version[2].checked==false) && (windows_version_others.length < 1))
    {
        alert(empty);
        f.windows_version_others.focus();
        return false;
    }
    else if ( (screen_resolution[0].checked==false && screen_resolution[1].checked==false && screen_resolution[2].checked==false) && (screen_resolution_others.length<1) )
    {
        alert(empty);
        f.screen_resolution_others.focus();
        return false;
    }
    else if ( (memory[0].checked==false && memory[1].checked==false && memory[2].checked==false && memory[3].checked==false) && (memory_others.length <1) )
    {
        alert(empty);
        f.memory_others.focus();
        return false;
    }
    else if (confirm_password.length < 1)
    {
        alert(msg3);
        f.confirm_password.focus();
        return false;
    }
    else if (email_address.length < 1)
    {
        alert(msg4);
        f.email_address.focus();
        return false;
    }
    else if (password != confirm_password)
    {
        alert(msg3);
        f.confirm_password.focus();
        return false;
    }
    else if (!checkEmail(email_address))
    {
        alert(msg5);
        f.email_address.focus();
        return false;
    }
    else
    {
        windows_version_choice = getRadioButton(f.windows_version);
        if (windows_version_choice == "others")
            windows_version = windows_version_others;
        else           
            windows_version = windows_version_choice;
                    
        screen_resolution_choice = getRadioButton(f.screen_resolution);
        if (screen_resolution_choice == "others")
            screen_resolution = screen_resolution_others;
        else           
            screen_resolution = screen_resolution_choice;     
                       
        //network_card_choice = getRadioButton(f.network_card);
        //network_card = network_card_choice;
                       
        memory_choice = getRadioButton(memory);
        memory = memory_choice;
                       
        computer_choice = getRadioButton(f.computer);          
        computer = computer_choice; 
                       
        mind_mapping_choice = getRadioButton(f.mind_mapping);
        mind_mapping = mind_mapping_choice; 
        
        //personal_firewall_choice = getRadioButton(f.personal_firewall);
        //personal_firewall = personal_firewall_choice;
                     
        f.person_name.value = person_name;
        f.username.value = username;
        f.password.value = password;
        f.email_address.value = email_address;
        f.windows_version.value = windows_version;
        f.processor_speed.value = processor_speed;
        f.graphic_card_manufacturer_model.value = graphic_card_manufacturer_model;
        f.screen_resolution.value = screen_resolution;
        //f.network_card.value = network_card;
        f.memory.value = memory; 
        f.computer.value = computer;
        f.mind_mapping.value = mind_mapping;
        f.opengl_level.value = opengl_level;
        //f.personal_firewall.value = personal_firewall;
                                        
        return true;
        
    } 


}

function getRadioButton(radio_button)
{
    radio_button = eval(radio_button);
    var radio_choice = false;

    for (counter = 0; counter < radio_button.length; counter++)
    {
        if (radio_button[counter].checked)
        	radio_choice = radio_button[counter].value; 
    }
    return radio_choice;
}

function openWinOpener(toPage)
{
    if (window.opener && !window.opener.closed)
    {
        window.opener.location.href=toPage;
        window.opener.focus();
    }
    else
    {
        window.open(toPage,'new','top=0, left=0, width=1000, height=700, scrollbars=yes, resizable=yes, location=1,menubar=1,scrollbars=1,status=1,toolbar=1');        
    }       
}

function submitForm(formname){
    formname.submit();
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*****************************
First name input restriction
******************************/

function changeFirstnameInputValue(idName)
{
    var target = document.getElementById(idName);
    setTimeout("reallyChangeFirstnameInputValue('" + idName + "');", 1);
}

function reallyChangeFirstnameInputValue(idName) 
{
    var control = document.getElementById(idName);
    var patt1=new RegExp("^[a-zA-Z-. ]{1,32}$");
    if (patt1.test(control.value) == false)
    {
        control.value = "";
    }
}

/*****************************
Last name input restriction
******************************/

function changeLastnameInputValue(idName)
{
    var target = document.getElementById(idName);
    setTimeout("reallyChangeLastnameInputValue('" + idName + "');", 1);
}

function reallyChangeLastnameInputValue(idName) 
{
    var control = document.getElementById(idName);
    var patt1=new RegExp("^[a-zA-Z-. ]{1,64}$");
    if (patt1.test(control.value) == false)
    {
        control.value = "";
    }
}

/*****************************
Text input restriction
******************************/

function changeTextInputValue(idName)
{
    var target = document.getElementById(idName);
    setTimeout("reallyChangeTextInputValue('" + idName + "');", 1);
}

function reallyChangeTextInputValue(idName) 
{
    var control = document.getElementById(idName);
    var patt1=new RegExp("^[a-zA-Z0-9-_.@ ]{1,100}$");
    if (patt1.test(control.value) == false)
    {
        control.value = "";
    }
}

function blockTextInput(e)
{
    // used by: onkeydown="return blockTextInput(event)"
    // used for IE, Firefox, Chrome
//    var browser=navigator.appName
//    if (browser == "Microsoft Internet Explorer")
//    {
//        var key = window.event.keyCode;
/*        switch (key) {
            case 8:
            case 32:
    { */
//        var key = String.fromCharCode(e.which)
    var key = window.event ? e.keyCode : e.which;
/*
Letters = 65 - 90
Numbers = 48 - 57
*/
    if (!e) var e = window.event;
    if (e.shiftKey)
    {
        if (key == 190 || key == 109 || key == 189)
        {
            return false;
        }
    }
    switch (key) {
        case 8:  //Backspace
        case 9:  //tab
        case 32: //space
        case 35: //end
        case 36: //home
        case 37: //left arrow key
        case 38: //up arrow key
        case 39: //right arrow key
        case 40: //down arrow key
        case 46: //delete
        case 65: //a,A
        case 66:
        case 67:
        case 68:
        case 69:
        case 70:
        case 71:
        case 72:
        case 73:
        case 74:
        case 75:
        case 76:
        case 77:
        case 78:
        case 79:
        case 80:
        case 81:
        case 82:
        case 83:
        case 84:
        case 85:
        case 86:
        case 87:
        case 88:
        case 89:
        case 90: //z,Z
        case 109: //hyphen in firefox
        case 189: //hyphen in IE
        case 190: //full stop
            return true;
            break;
        default:
            return false;
            break;
    }
}

function blockTextInputOnKeyPress(e)
{
    // used by: onkeypress="return blockTextInputOnKeyPress(event)"
    // used for Opera
    var browser=navigator.appName
    var key = window.event ? e.keyCode : e.which;
    if (browser == "Opera")
    {
        switch (key) {
            case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
            case 10: case 11: case 12: case 13: 
            case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23:
            case 24: case 25: case 26: case 27: case 28: case 29: case 30: case 31:
            case 33: case 34: 
            case 38:
            case 40:
            case 41: case 42: case 43: case 44:
            case 47: case 48: case 49: case 50: case 51: case 52: case 53: case 54:
            case 55: case 56: case 57: case 58: case 59: case 60: case 61: case 62:
            case 63: case 64:
            case 91: case 92: case 93: case 94: case 95: case 96:
            case 123: case 124: case 125: case 126:
            case 128: case 129: case 130: case 131: case 132: case 133: case 134:
            case 135: case 136: case 137: case 138: case 139: case 140: case 141:
            case 142: case 143: case 144: case 145: case 146: case 147: case 148:
            case 149: case 150: case 151: case 152: case 153: case 154: case 155:
            case 156: case 157: case 158: case 159: case 160: case 161: case 162:
            case 163: case 164: case 165: case 166: case 167: case 168: case 169:
            case 170: case 171: case 172: case 173: case 174: case 175: case 176:
            case 177: case 178: case 179: case 180: case 181: case 182: case 183:
            case 184: case 185: case 186: case 187: case 188: case 189: case 190:
            case 191: case 192: case 193: case 194: case 195: case 196: case 197:
            case 198: case 199: case 200: case 201: case 202: case 203: case 204:
            case 205: case 206: case 207: case 208: case 209: case 210: case 211:
            case 212: case 213: case 214: case 215: case 216: case 217: case 218:
            case 219: case 220: case 221: case 222: case 223: case 224: case 225:
            case 226: case 227: case 228: case 229: case 230: case 231: case 232:
            case 233: case 234: case 235: case 236: case 237: case 238: case 239:
            case 240: case 241: case 242: case 243: case 244: case 245: case 246:
            case 247: case 248: case 249: case 250: case 251: case 252: case 253:
            case 254: case 255:
                return false;
                break;
            default:
                return true;
                break;
        }
    }
}


function blockTextInputForEmail(e)
{
    // used by: onkeypress="return blockTextInputForEmail(event)"
    var browser=navigator.appName
    if (browser == "Microsoft Internet Explorer")
    {
        var key = window.event.keyCode;
        switch (key) {
            case 33:
            case 34:
            case 36:
            case 37:
            case 40:
            case 41:
            case 91:
            case 93:
            case 123:
            case 125:
            case 58:
            case 59:
            case 92:
            case 47:
            case 35:
            case 42:
            case 60:
            case 62:
            case 94:
            case 38:
            case 61:
                return false;
                break;
        }
    }
    else
    {
        var key = String.fromCharCode(e.which)
        switch (key) {
            case '!':
            case '"':
            case '$':
            case '%':
            case '(':
            case ')':
            case '[':
            case ']':
            case '{':
            case '}':
            case ':':
            case ';':
            case '\\':
            case '/':
            case '#':
            case '*':
            case '<':
            case '>':
            case '^':
            case '&':
            case '=':
                return false;
                break;
        }
    }
}
