//All rights reserved melitokagan.

function isValid(display, fld, fldType, required)
{
	//field type string, numeric
	if(required==1 && fld.value=="")
		return warnInvalid(fld, display, fldType);
	if(fldType=="numeric" && isNaN(fld.value))
		return warnInvalid(fld, display, fldType);
	if(fldType=="email" && fld.value != "")
	{ 
		atPos = fld.value.indexOf('@');
		atPos2 = fld.value.indexOf('.');
        if (atPos < 1 || atPos == (fld.value.length - 1))	
		{ return warnInvalid(fld, display, fldType);}
		if (atPos2 < 1 || atPos2 == (fld.value.length - 1))	
		{ return warnInvalid(fld, display, fldType);}
		if(!isemail(fld.value))
		{return warnInvalid(fld, display, fldType);}
    }
    if(fldType=="date" && fld.value != "")
	{
		if(!isDate(fld))
			return warnInvalid(fld, display, fldType);
	}	
	return true;
	
}

function isemail(str)
{
	var regexp = /^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*(.[a-zA-Z]{2,3})$/;
	return regexp.test(str);	
}

function isSSN(str)
{
	var regexp = /^(\d{9}|\d{3}-\d{2}-\d{4})$/;
	return regexp.test(str);	
}

function isPassword(fld)
{
		var valpwd= new String(fld.value);
		if(valpwd.length<6)
		{ alert("Password must contain at least 6 characters."); fld.focus(); return false; }
		if(valpwd.length>18)
		{ alert("Password must not contain more than 18 characters"); fld.focus(); return false; }
		
		var regexp = /[^a-z0-9]$/;
		ret = regexp.test(valpwd);	
		if(ret)
		{ alert("Password must contain letters or numbers only."); fld.focus(); return false; }
		//if(valpwd.search(/[0-9]/)==-1) { alert("Password must contain letters and numbers."); return false;}
		return true;	
}


function comparevalues(fld1, fld2, display)
{
	if(fld1.value!=fld2.value)
	{ alert(display); fld1.focus(); return false; }
	else
		return true;	
}

function IsValidCreditCard(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType.toLowerCase())
    {
      case "mc":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;
	  case "dsc":
	  	lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^6/;
        break;
      case "amx":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

      default:
        prefixRegExp = /^$/;
        //alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}



function StripCharacters(fld)
{
	str = new String(fld.value);
	var myreg = new RegExp(",","g") 
	val1 = str.replace(myreg, "");
	val2 = val1.replace("$", "");
	fld.value = val2;
}

function isLenValid(display, fld, fldlen)
{
	nStr = String(fld.value)
	nLen = nStr.length;
	if(nLen > fldlen)
		return warnInvalidLen(fld, display, fldlen);
	else
		return true;
}

function warnInvalidLen(fld, fldDisplay, fldlen)
{
	alert("'" + fldDisplay + "' contains too many characters. The maximum character length is " + fldlen);
	fld.focus();
	return false;
}

function isDate(fld)
{
	var vLen = fld.value
	var val = new String(fld.value);
	valArray = val.split("/");
	mm = valArray[0];
	dd = valArray[1];
	yy = valArray[2];
	
		
	if(isNaN(mm))return false;
	if(isNaN(dd))return false;
	if(isNaN(yy))return false;
	if(yy.length!=4)
	{
		alert("Enter 4 digits for the year.");
		return false;
	}
	if(mm<10 && mm.length==1) 
	{
		var m = new String();
		m = "0" + mm;
		mm = m;
	}
	if(dd<10 && dd.length==1)
	{
		var d = new String();
		d = "0" + dd;
		dd = d;
	}
	
	
	//if(mm.length!=2 || dd.length!=2 || yy.length!=4) alert("Enter 2 digits for the month and day and 4 digits for year. Ex: 01/01/2001")
	if(mm>12)return false;
	if(!CheckDay(mm, dd, yy))return false;
	
	return true;
		

}

function CheckDay(mm, dd, yy)
{
	var badDay = 0
	switch (mm)
	{
		case "01":
			if(dd>31)badDay=1;
			break;
		case "02":
			if(yy % 4 == 0)
				{if(dd>29)badDay=1;	}
			else
				{if(dd>28)badDay=1;}
			break;
		case "03":
			if(dd>31)badDay=1;;
			break;
		case "04":
			if(dd>30)badDay=1;;
			break;
		case "05":
			if(dd>31)badDay=1;;
			break;
		case "06":
			if(dd>30)badDay=1;;
			break;
		case "07":
			if(dd>31)badDay=1;;
			break;
		case "08":
			if(dd>31)badDay=1;;
			break;
		case "09":
			if(dd>30)badDay=1;;
			break;
		case "10":
			if(dd>31)badDay=1;;
			break;
		case "11":
			if(dd>30)badDay=1;;
			break;
		case "12":
			if(dd>31)badDay=1;;
			break;
	}	
	
	if(badDay==1)
		return false;
	else
		return true;
	
}

function warnInvalid(fld, fldDisplay, fldType)
{
	if(fldType=="email") c = "n"; else c = "";
	alert("Please enter a valid value in the " + fldDisplay + " field.");
	fld.focus();
	return false;
}

function BackPage()
{
	history.back()
}


function GetDays(fld, MM, YY)
{
	var gDay
	fld.options.length = 31
			
	switch (MM)
	{
		case "1":
			gDay = 31;
			break;
		case "2":
			if(YY % 4 == 0)
				gDay = 29;
			else
				gDay = 28;
			break;
		case "3":
			gDay = 31;
			break;
		case "4":
			gDay = 30;
			break;
		case "5":
			gDay = 31;
			break;
		case "6":
			gDay = 30;
			break;
		case "7":
			gDay = 31;
			break;
		case "8":
			gDay = 31;
			break;
		case "9":
			gDay = 30;
			break;
		case "10":
			gDay = 31;
			break;
		case "11":
			gDay = 30;
			break;
		case "12":
			gDay = 31;
			break;
	}	
		for(var i=0;i<gDay;i++)
		 {
			fld.options[i].value = i + 1
			fld.options[i].text = i + 1
		 }
		 for(var i = gDay; i<31; i++)
		 {
			fld.options[i].value = ""
			fld.options[i].text = ""
		 }
		 fld.options.length = gDay
	
}

function ConfirmContinue(msg,page)
{
	if(confirm(msg)==true) 
	{
		location.href = page
	}
}

function OpenWindow(theURL,winName,features) 
{ //features: 'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=300,height=300'
 	mywin = window.open(theURL,winName,features);
}

function ClosePopUp()
{
 if (typeof(myNewWindow) == "object")
 {
   // myNewWindow.focus();
   myNewWindow.close();
 }
}

function OpenAdminLayer(d)
	{
		elm = document.getElementById(d);
		strdisplay =elm.style.display;
		if(strdisplay.toString()!="none"){elm.style.display="none";   }
		if(strdisplay.toString()=="none" ) {elm.style.display = ""; }
		
		
	}

function CloseAdminLayer(d)
	{
		elm = document.getElementById(d);
		elm.style.display="none";  
		
	}

	
function CloseOthers(d,elemcount)
{
	if(d!="div_add")
	{
		elm = document.getElementById('div_add');
		strdisplay =elm.style.display;
		elm.style.display = "none";
	}
	for(i=0;i<elemcount;i++)
	{
		if(d!="div_"+i)
		{
			elm = document.getElementById("div_"+i);
			elm.style.display = "none";
		}
	}
}

var sId;

function OpenLayer(layer)
{
	var skip;
	div_ignore = new Array("");
	elm = document.getElementsByTagName("div");
	for (var i = 0; i < elm.length; i++)
	{
 	   skip = 0;
	   for(j=0; j<div_ignore.length; j++)
 	   {
 	   		if(String(elm[i].id)==String(div_ignore[j]))
 	   		{	skip=1; }
 	   		if(elm[i].id.indexOf('team')>0)
 	   		{ skip=1; }
 	   }
 	   if(skip==0)
 	   {
		   if(elm[i].id==layer)
	 	   {  MM_showHideLayers(elm[i].id,'','show');   }
		   else
		   {  MM_showHideLayers(elm[i].id,'','hide');  }
 	   }
	   	
	}
}

function insertAtCursor(myField, myValue) {
		//IE support
		if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		}
		//MOZILLA/NETSCAPE support
		else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
		} else {
		myField.value += myValue;
		}
		}
/*
	function ubbc(open, end, defaultval){ 
    var tArea = window.opener.document.<?=$frm?>.html; 
    var isIE = (document.all)? true : false; 
    var open = (open)? open : ""; 
    var end = (end)? end : ""; 

    if(isIE){ 
        tArea.focus(); 
        var curSelect =  window.opener.document.selection.createRange(); 
        if(arguments[2] && curSelect.text==''){ 
            curSelect.text = open + arguments[2] + curSelect.text + end; 
        } else { 
            curSelect.text = open + curSelect.text + end; 
        } 
    } else if(!isIE && typeof tArea.selectionStart != "undefined"){ 
        var selStart = tArea.value.substr(0, tArea.selectionStart); 
        var selEnd = tArea.value.substr(tArea.selectionEnd, tArea.value.length); 
        var curSelection = tArea.value.replace(selStart, '').replace(selEnd, ''); 
        if(arguments[2] && selEnd-selStart==0){ 
            tArea.value = selStart + open + arguments[2] +  curSelection + end + selEnd; 
        } else { 
            tArea.value = selStart + open + curSelection + end + selEnd; 
        } 
    } else { 
        tArea.value += (arguments[2])? open + arguments[2] + end : open + end; 
    } 
    
    window.close();
} 
*/
function CloseLayer(layer)
{
	sId = window.setTimeout("MM_showHideLayers('"+layer+"','','hide');",1500);
}
function StopTimer()
{
	window.clearTimeout(sId);
}
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

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];}
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}
var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		server=document.domain;
		if(server.indexOf('mainserver')!=-1 || server.indexOf('dev.melitokagan.com')!=-1)
			server="http://"+server+":81/texaswinefest";
		else
			server="http://"+server;
		nov_nav_home_over = newImage(server+"/images/nav/nov_nav_home_on.gif");
		nov_nav_cable_over = newImage(server+"/images/nav/nov_nav_horror_stories_on.gif");
		nov_nav_rate_over = newImage(server+"/images/nav/nov_nav_rate_increases_on.gif");
		nov_nav_big_over = newImage(server+"/images/nav/nov_nav_labor_on.gif");
		nov_nav_wicked_over = newImage(server+"/images/nav/nov_nav_waste_on.gif");
		nov_nav_monopoly_over = newImage(server+"/images/nav/nov_nav_monopoly_on.gif");
		nov_nav_contact_over = newImage(server+"/images/nav/nov_nav_about_on.gif");
		preloadFlag = true;
	}
}
