// Title: General Tradestamp Javascript functions
// Description:
// Version: 1.13
// Date: 
// Notes: 

function selectAllCriteria(id, checked){
    var form = document.form1;
for (var i=0; i<form.elements.length; i++)
			{
				var obj = form.elements[i];
				var type =  obj.type;
                                var name = obj.getAttribute('name');
                                var value=obj.getAttribute('value');
				if ((type=="checkbox") && (name == "criteria2_"+id+"[]") && (value!="other"))
				{
					eval( "form.elements["  + i  + "] .checked = checked")
				}
			}
/**
    var elems = document.getElementsByName("criteria2_"+id+"[]");
    for(i in elems){
alert(elems[i].name+" "+elems[i].checked+" "+checked);
        elems[i].checked=checked;
       }
**/
}

function  descriptionObj(title, text)
{
	this.title = title;
	this.text = text;
}


function popupWindow( windowName, Title, Text)
{
var win;
var formattedText =  Text

	if (win != null) { win.close()} 
	win  = window.open("", "Tradestamp", "resizeable=yes, scrollbars=yes, width=500, height=400");
	var d = win.document;
	d.write("<html><head><title>");
	d.write( windowName );
	d.write("</title>")
	d.write("<link rel='stylesheet' href='/ts/scripts/Tradestamp.css'>");
	d.write("</head><body>")

	d.write("<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\" >")
	d.write("<tr>")
	d.write("<td class=\"red\"><div class=\"screentitlecompact\">Tradestamp.com Information</div></td>")
	d.write("</tr></table>")

	d.write("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">")
	d.write("<tr><td width=\"10\">&nbsp;</td><td>")
	d.write("<br /><div class=\"formbox\">")
	d.write("<span class=\"title\">")
	d.write(Title)
	d.write("</span>")
	d.write("<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"3\" class=\"formtable\" style=\"margin:10px;\" >")
	d.write("<tr>") 
	d.write("<td><div>")
	d.write( formattedText)
	d.write("</div></td></tr></table></div><br />")
	d.write("<div class=\"formbuttonbox\">")
	d.write("<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\" >")
	d.write("<tr colspan=\"2\" align=\"right\">") 
	d.write("<td>")
	d.write("<input  value='Close' type=button onClick='javascript:window.close()'  class='formbutton' >")
	d.write("</td></tr></table></div><br />")
	d.write("</td></tr></table>")
	
	d.write("</body></html>") 
	d.close() 
	win.moveTo(100, 100)
}


function subWindow( WindowName, url)
{
var win;
	if (win != null) { win.close()} 

	win  = window.open("", WindowName, "toolbar=no, menubar=no, status=yes, resizable=yes, scrollbars=yes, width=600, height=600");
	win.location = url;
	win.moveTo(30, 30)
	return win
}

function confirmLink( confirmText, pageName)
{
	if ( confirm(confirmText) == true)
	{
		if (pageName != null)
		{
			window.location = pageName
		}
		else
		{
			alert("A software error has occurred. \nPlease notify the web manager")
		}
	}

}


function validatePostcode(postcode)
{
  var validPostcode = new RegExp("^[a-z]{1,2}([0-9]{1,2}|[0-9][a-z]) {0,1}[0-9][a-z][a-z]$", "i");
    if(validPostcode.exec(postcode) ==	 null)
    {
		return false;
    }
    else
    {
		return true;
    }
}

function validateEmail(email)
{
// 	var tomatch = new RegExp("[A-Za-z0-9_\.]{2,}@[A-Za-z0-9-_]{2,}\.[A-Za-z]{2,}", "i");
 	var tomatch = new RegExp("[A-Za-z0-9_]{1,}[\.]{0,1}[A-Za-z0-9_]{1,}@[A-Za-z0-9-_]{2,}\.[A-Za-z]{2,}", "i");
	if(tomatch.exec(email) == null)
    {
		return false;
    }
    else
    {
		return true;
    }
}

function validateTelNum(obj)
{
	var telNum = obj.value
	var validTelNum = new RegExp("[+(]{0,}[0-9]{4,}[) ]{0,}[0-9 ]{5,}$", "ig"); 
	if(validTelNum.exec(telNum) == null)
    {
		return false;
    }
    else
    {
		return true;
    }
}

function validateAmount(obj){
    //first remove £ and , signs then validate float
    var str = obj.value;
    for(i=0;i<str.length;i++){
        if((str.charAt(i)=='£') || (str.charAt(i)==','))
            str = str.substring(0,i-1) + str.substring(i+1, str.length);
    }
    if(isNaN(str))
        return false;
    else
        return str;
}


function validateFloat(obj)
{
	var floatVal = obj.value
	var result = parseFloat( floatVal)

	if(isNaN( result) )
    {
		return false;
    }
    else
    {
		return true;
    }
}

function validateCurrency(obj)
{
   	var tomatch = new RegExp("^[£]{0,1}[0-9]{1,}[,.]{0,1}[0-9]{1,}[,.]{0,1}[0-9]{1,2}$", "i");
	var currency = obj.value
    if(tomatch.exec(currency) == null)
    {
		return false;
    }
    else
    {
		return true;
    }
}

function charIsAlpha(ch)
{
	if( (ch >= 'a' && ch <= 'z' )
	|| 
	(ch >= 'A' && ch <= 'Z' ) )
	{
		 return true
	}
	else
	{
		return false
	}
}

function validateDate(day, month, year)
{
var dayNum = 0
var monthNum = 0
var yearNum = 0

   //check correct number of day for given month/year
   if (day.selectedIndex != 0 && month.selectedIndex != 0 
					     && year.selectedIndex != 0)
   {
	dayNum = day.selectedIndex
	monthNum = month.selectedIndex
	yearNum = year.options[year.selectedIndex].value

	switch(monthNum) 
        {
	case 2 :
         	//February
	        if (yearNum == Math.round(yearNum  / 4) * 4)
		//leap year
		{
	 		if (dayNum > 29)
                	{
                  	return false;
           		}
		}
        	 else
		 {
			//non-leap year
			if (dayNum > 28)
	                {
        	          return false;
                	}
		}
        	break; 
	case 4 :
		//April
		if (dayNum > 30)
		{
			return false;
       	} 
		break;
	case 6:
        	//June
		if (day.value > 30)
		{
			return false;
		} 
		break; 
		case 9:
		//September
        if (dayNum > 30)
        {
			return false;
        } 
        break;
        case 11:
        //November
		if (dayNum > 30)
		{
			return false;
		}	 
		break;
         default:
		//date is valid
		return true;
		break;
         }
      }
} 

function displayDate()
{
  var d, months, dateStr;
  months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  d = new Date();
  dateStr = d.getUTCDate() + " " + months[d.getUTCMonth()] + " " + d.getUTCFullYear();
  writeLayer("dateCell", dateStr);
}  


function writeLayer(layerName, str)
{
var thisBrowser = detectBrowser()
var layer

	if(thisBrowser.indexOf("NN4") >=0  )
	{
		//thisbrowser="NN4";
		layer = document.layers[layerName];
		layer.document.open();
		layer.document.write(str);
		layer.document.close();
	}
	if(thisBrowser.indexOf("IE") >=0 )
	{	//thisbrowser="ie"
		layer = document.all[layerName];
		layer.innerHTML=str;
	}
	if(thisBrowser.indexOf("NN6") >=0 )
	{
		//thisbrowser="NN6";
		layer = document.getElementById(layerName);
		layer.innerHTML =str;
	}
}

function detectBrowser()
{
var thisbrowser =""
	if(document.layers)
		thisbrowser="NN4";
	if(document.all)
		thisbrowser="IE"
    if(!document.all && document.getElementById)
		thisbrowser="NN6";
return thisbrowser
}

function doAddToCart(CRref)
{
// DEVNOTE:  Additions may be single or multiple depending on the page.
if (CRref != null)
{
	alert("The selected Customer Requirements have been added to your Shopping Cart.\n"  )
}
else
{
	alert("The selected Customer Requirements has been added to your Shopping Cart.\n "  )
}
} 

function focusFirstField(formObj)
{
	var obj
	var type 
	var form = document.form1
	for (var i=0; i<form.elements.length; i++)
	{
		obj = form.elements[i];
		type =  obj.type;
		if (type=="text")
		{
			obj.focus()
			break;
		}
	}
}	

function doCancel()
{
	history.go(-1)
}
function doBack()
{
	history.go(-1)
}

function clearPostcodes(a, b)
{
	eval ( "document.form1." + a + ".value = '' ")
	eval ( "document.form1." + b + ".value = '' ")
	eval ( "document.form1." + a + ".focus()")

}


function doDisplayDates(obj)
{
	var checkVal = obj.checked
	if (checkVal == "1")
	{
		if ( document.form1.earliestStartDay )
		{
			document.form1.earliestStartDay.disabled = true;
			document.form1.earliestStartMonth.disabled = true;
			document.form1.earliestStartYear.disabled = true;
		}
		if ( document.form1.latestEndDay )
		{
			document.form1.latestEndDay.disabled = true;
			document.form1.latestEndMonth.disabled = true;
			document.form1.latestEndYear.disabled = true;
		}
	}
	else
	{
		if ( document.form1.earliestStartDay )
		{
			document.form1.earliestStartDay.disabled = false;
			document.form1.earliestStartMonth.disabled = false;
			document.form1.earliestStartYear.disabled = false;
		}
		if ( document.form1.latestEndDay )
		{
			document.form1.latestEndDay.disabled = false;
			document.form1.latestEndMonth.disabled = false;
			document.form1.latestEndYear.disabled = false;
		}
	}
}


function confirmEmail(obj)
{
	if (confirm('Please confirm that the email address is correct\n\n\t' + obj.value) )
		return true
	else
		return false
}

function editAidPostCode(obj)
{
var str = obj.value
var spacePos = -1
	spacePos = str.lastIndexOf(" ")
	if (spacePos > 0 )
	{
		str = str.substring(0, spacePos) 
		obj.value = str
		document.form1.postcodeB.focus()
	}
}
function editAidPostCodeV2(obj, destFieldName)
{
var str = obj.value
var spacePos = -1
	spacePos = str.lastIndexOf(" ")
	if (spacePos > 0 )
	{
		str = str.substring(0, spacePos) 
		obj.value = str
		eval("document.form1." + destFieldName + ".focus()" )
	}
}

function highlightRow(obj)
{
	if (obj.checked == true)
			obj.parentNode.parentNode.style.backgroundColor = '#cccccc'; //'#ffffff';	
	else
			obj.parentNode.parentNode.style.backgroundColor = '#ffffff';	
}

function validateCountyMenu(obj)
{//  ensure that county - not a country is selected
	var result = false;
	var selectedVal = ""

	if (obj )
	{
		if (obj.selectedIndex > 0 )
		{
			selectedVal = obj.options[obj.selectedIndex].value
			if (selectedVal =="None" || selectedVal == "none" )
			{
				result = false;	
			}
			else
			{
				result = true;
			}
		}
	}
	return result
}

//  ************ For development only*********
function doNext(dest)
{
window.location.href = dest
}
