var isDOM = (document.getElementById ? true : false); 
var isIE4 = ((document.all && !isDOM) ? true : false);
var isNS4 = (document.layers ? true : false);
function getRef(id) {
if (isDOM) return document.getElementById(id);
if (isIE4) return document.all[id];
if (isNS4) return document.layers[id];
}
function getSty(id) {
return (isNS4 ? getRef(id) : getRef(id).style);
} 

var popTimer = 0;

var litNow = new Array();
function popOver(menuNum, itemNum) {
clearTimeout(popTimer);
hideAllBut(menuNum);
litNow = getTree(menuNum, itemNum);
changeCol(litNow, true);
targetNum = menu[menuNum][itemNum].target;
if (targetNum > 0) {
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
with (menu[targetNum][0].ref) {
left = parseInt(thisX + menu[targetNum][0].x);
top = parseInt(thisY + menu[targetNum][0].y);
visibility = 'visible';
      }
   }
}
function popOut(menuNum, itemNum) {
if ((menuNum == 0) && !menu[menuNum][itemNum].target)
hideAllBut(0)
else
popTimer = setTimeout('hideAllBut(0)', 500);
}
function getTree(menuNum, itemNum) {


itemArray = new Array(menu.length);

while(1) {
itemArray[menuNum] = itemNum;

if (menuNum == 0) return itemArray;
itemNum = menu[menuNum][0].parentItem;
menuNum = menu[menuNum][0].parentMenu;
   }
}


function changeCol(changeArray, isOver) {
for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
if (changeArray[menuCount]) {
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;

with (menu[menuCount][changeArray[menuCount]].ref) {
if (isNS4) bgColor = newCol;
else backgroundColor = newCol;
         }
      }
   }
}
function hideAllBut(menuNum) {
var keepMenus = getTree(menuNum, 1);
for (count = 0; count < menu.length; count++)
if (!keepMenus[count])
menu[count][0].ref.visibility = 'hidden';
changeCol(litNow, false);
}



function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
this.isVert = isVert;
this.popInd = popInd
this.x = x;
this.y = y;
this.width = width;
this.overCol = overCol;
this.backCol = backCol;
this.borderClass = borderClass;
this.textClass = textClass;
this.parentMenu = null;
this.parentItem = null;
this.ref = null;
}

function Item(text, href, frame, length, spacing, target) {
this.text = text;
this.href = href;
this.frame = frame;
this.length = length;
this.spacing = spacing;
this.target = target;
this.ref = null;
}

function writeMenus() {
if (!isDOM && !isIE4 && !isNS4) return;

for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
var str = '', itemX = 0, itemY = 0;

for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
var itemID = 'menu' + currMenu + 'item' + currItem;

var w = (isVert ? width : length);
var h = (isVert ? length : width);

if (isDOM || isIE4) {
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
if (backCol) str += 'background: ' + backCol + '; ';
str += '" ';
}
if (isNS4) {
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' +  w + '" height="' + h + '" visibility="inherit" ';
if (backCol) str += 'bgcolor="' + backCol + '" ';
}
if (borderClass) str += 'class="' + borderClass + '" ';

str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';

str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="left" height="' + (h - 7) + '">' + '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
if (target > 0) {
menu[target][0].parentMenu = currMenu;
menu[target][0].parentItem = currItem;
if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
}
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
if (isVert) itemY += length + spacing;
else itemX += length + spacing;
}
if (isDOM) {
var newDiv = document.createElement('div');
document.getElementsByTagName('body').item(0).appendChild(newDiv);
newDiv.innerHTML = str;
ref = newDiv.style;
ref.position = 'absolute';
ref.visibility = 'hidden';
}

if (isIE4) {
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
ref = getSty('menu' + currMenu + 'div');
}

if (isNS4) {
ref = new Layer(0);
ref.document.write(str);
ref.document.close();
}

for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
itemName = 'menu' + currMenu + 'item' + currItem;
if (isDOM || isIE4) menu[currMenu][currItem].ref = getSty(itemName);
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
   }
}
with(menu[0][0]) {
ref.left = x;
ref.top = y;
ref.visibility = 'visible';
   }
}

//----------------------------------------------------------------------------------------------------------------------
var message="Sorry no unauthorized copying of resources from this web site.\n" +
"Graphics & Content � of the owners/authors of the works or SikhOL Network.\n" + 
"Mail to us (webmaster@GuruGranthSahib.com) if you would like to use any of the material \non this site. " +
"We will be more than happy to assist you."

function onRightMouseButtonClick(e){
   if (document.all) {
	if (event.button == 2) {
	  alert(message);
          return false;
        }
   }
   if (document.layers) {
      if (e.which == 3) {
         alert(message);
         return false;
      }
   }
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=onRightMouseButtonClick;

function validate(){
	if(document.gbForm.name.value=='' ){
		alert("Please enter your name.");
		return false;
	}
	if(document.gbForm.email.value=='' || document.gbForm.email.value== /\s/){
		alert("Please enter your email address.");
		return false;
	}else{
		validateEmail(document.gbForm.email.value);
	}
	if(document.gbForm.comments.value==''){
		alert("Please enter comments.");
		return false;
	}
	return true;
}

function validatePunjabi(){
	if(document.gbFormPunjabi.name.value=='' ){
		alert("Please enter your name.");
		return false;
	}
	if(document.gbFormPunjabi.email.value=='' || document.gbFormPunjabi.email.value== /\s/){
		alert("Please enter your email address.");
		return false;
	}else{
		
		validateEmail(document.gbFormPunjabi.email.value)
	}
	if(document.gbFormPunjabi.comments.value==''){
		alert("Please enter comments.");
		return false;
	}
	return true;
}

function validateEmail(emailStr) {
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
	alert("Email address seems to be incorrect (check @ and .'s)")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

if (user.match(userPat)==null) {
    alert("The username doesn't seem to be valid.")
    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Destination IP address is invalid!")
		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("The domain name doesn't seem to be valid.")
    return false
}

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>6) {
   alert("The address must end in a domain,\nsuch as .com,.info,.name,.museum  or \ntwo letter country code such as .in, .uk, .ca etc")
   return false
}

if (len<2) {
   var errStr="This address is missing a hostname!"
   alert(errStr)
   return false
}
return true;
}
var salt = null;
var contEndDate = null;
//YYYY for © info
function init(initData){
	writeMenus();
	document.title='Guru Granth Sahib, Message of the Sikh Gurus and Win Free Gurbani CD. (Welcome, choose a menu option)'
	if(document.getElementById('yyyy') != null){
		document.getElementById('yyyy').innerHTML = new Date().getFullYear();
	}
	salt = initData.salt;
	contEndDate = initData.contestEndDate;
	var timer = window.setInterval("refreshSecs()", 1000);
}

function encryptPwd(){
	pwd = document.getElementById('password');
	pwdRep = document.getElementById('passwordRepeat');
	pwd.value = hex_md5(salt + pwd.value);
	pwdRep.value = pwd.value;
}

function refreshSecs(){
		var contestEndDate = new Date(contEndDate);
		var currDate = new Date();
		var days = ((contestEndDate - currDate)/86400000).toString().split(/\./)[0];
		var hours = (((contestEndDate - currDate)%86400000)/3600000).toString().split(/\./)[0];
		var mins = ((((contestEndDate - currDate)%86400000)%3600000)/60000).toString().split(/\./)[0];

	var secs = (((((contestEndDate - currDate)%86400000)%3600000)%60000)/1000).toString().split(/\./)[0];;
	
	if(contestEndDate - currDate > 0){
		if(document.getElementById("countdown") != null){
		document.getElementById("countdown").innerHTML = 
			days + " Days " + hours + " Hours " 
			+ mins + " Min " + secs + " Secs ";
		}
	} else {
		if(document.getElementById("currContest") != null){
		document.getElementById("currContest").innerHTML = " <span style='font-weight:700;color:red'>Contest #12 coming soon</span>";
		}
	}
}



window.onload = function(){
	
}