/* eCitizen World JS */

// v1.14
// Last update: Tegs, 15/07/04
// Fleshed out the error message statements a bit
// Added getShortenedString()
// Sorted out the currency calculation routine
// Fixed date routine to work on IE5
// Added openURL
//
// v1.8
// Last update: Mark, 30/06/04
// Added browser compatability check and new date display function for eCitizen world page
//
// v1.7
// Added parseCurrency()
// Added disabled cookies detection routine
// Added 'testing' line to authenticate
// Fixed date parsing routines

<!-- 
var showDateShort = 1;
var showDate= 2;
var showDateTime= 3;
var showTime= 4;

var currencySymbolError = new Boolean(false);

function endCourse() {
  window.opener.location.href = ("urlearning2.htm");
}

function openWindow() {
  window.open('screen1.htm','course','width=587,height=359,left='+(screen.availWidth - 587) / 2+',top='+(screen.availHeight - 359) / 2+',screenX=0,screenY=100')
}

function openHelpWindow() {
  window.open('Bankhelp/bankhelp.htm','help','width=226,height=200,left='+(screen.availWidth) / 2+',top='+(screen.availHeight - 200) / 2+',screenX=0,screenY=100')
}

function closeHelpWindow() {
  window.close();
}

function setCurrencyCookieAndGo(url, currency) {
  // Build the expiration date string:

  if (url == "%") return;

  var expiration_date = new Date ();
  expiration_date . setYear (expiration_date . getYear () + 1);
  expiration_date = expiration_date . toGMTString ();

  document.cookie= "cia_currency" + "=" + escape(currency) + "; expires=" + expiration_date;
  location.href = (url);
}

function getShortenedString(str) {
  return str.substring(0, 40)+"...";
}
 
function getCurrencyCookie(noError) {
  var dc = document.cookie;
  var prefix = "cia_currency" + "=";
  var begin = dc.indexOf("; " + prefix);

  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0 && !noError && currencySymbolError.toString()=="false") {
      displayError("Can't save settings - Cookies are not enabled.\nReverting to Sterling (£)");
      currencySymbolError = new Boolean(true);
    }
  }
  else {
    begin += 2;
  }

  var end = document.cookie.indexOf(";", begin);
  if (end == -1) {
    end = dc.length;
  }
  return unescape(dc.substring(begin + prefix.length, end));
}

function writeCurrencyValue(value) {
  if (value-0 != value) {
    displayError("Error: NaN passed to writeCurrencyValue()");
    return "???"
  }

  var currency = getCurrencyCookie();
  if (currency == "Sterling") {
    return "£"+(value);
  }
  else if (currency == "Dollars") {
    return "$"+parseCurrency(value * 1.5);
  }
  else if (currency == "DolOzNz") {
    return "$"+parseCurrency(value * 3.0);
  }
  else if (currency == "Euro") {
    return "€"+parseCurrency(value * 1.5);
  }
  //---added by Rafees for GCC contries--(based on AED)------------
 else if (currency == "BAH") {
    return "BD."+parseCurrency(value/9.7);
  }
  else if (currency == "IQD") {
    return "ID. "+parseCurrency(value);
  }
  else if (currency == "KWD") {
    return "KD. "+parseCurrency(value/13.4);
  }
  else if (currency == "OMR") {
    return "OR. "+parseCurrency(value/9.5);
  }
  else if (currency == "QAR") {
    return "QR. "+parseCurrency(value);
  }
  else if (currency == "SAR") {
    return "SR. "+parseCurrency(value);
  }
  else if (currency == "AED") {
    return "Dhs. "+parseCurrency(value);
  }
  //-----------------------------
  
  return "Dhs."+(value);
}

function getCurrencySymbol() {
  var currency = getCurrencyCookie();

  if (currency == "Sterling") {
    return "£";
  }
  else if (currency == "Dollars") {
    return "$";
  }
  else if (currency == "DolOzNz") {
    return "$";
  }
  else if (currency == "Euro") {
    return "€";
  }
   else if (currency == "BAH") {
    return "BD.";
  }
  else if (currency == "IQD") {
    return "ID. ";
  }
  else if (currency == "KWD") {
    return "KD. ";
  }
  else if (currency == "OMR") {
    return "OR. ";
  }
  else if (currency == "QAR") {
    return "QR. ";
  }
  else if (currency == "SAR") {
    return "SR. ";
  }
  else if (currency == "AED") {
    return "Dhs. ";
  }
  return "Dhs. ";
}

function parseCurrency(value) {
  var number = ""+value;
  var dec = number.indexOf(".");

  if (dec == -1) {
    return number;
  }
  else {
    var nl = number.substring(0, dec);
    var nr = number.substring(dec + 1, dec + 3);

    if(number.length > (dec + 3))
    {
      var round = number.substring(dec + 3, dec + 4);
      if (round > "4")
      {
	var temp = new Number(nr) + 1;
	nr = temp.toString();
      }
    }

    if (nr.length == 0) {
      return nl;
    }

    while (nr.length < 2) {
      nr = nr+"0";
    }
  }
  return nl+"."+nr;
}

function y2k(number) { 
  return (number < 1000) ? number + 1900 : number; 
}

function daysElapsed(date1,date2) {
    var difference =
        Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0)
      - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);
    return difference/1000/60/60/24;
}

function checkDate(input, answer) {
  // Only checks dd/mm - year is open but checked for validity
  var dd = input.substr(0,2);
  var mm = input.substr(3,2);
  var yy = "20"+input.substr(6,2);
  var mmddyy = mm+"/"+dd+"/"+yy;

  var date = new Date(mmddyy);
  var now = new Date();

  if (date.toString() == "NaN") {
    return false;
  }
  else {
    // Check date is valid
    var newmm=""+(date.getMonth()+1);
    var newyy=""+date.getYear();
    if (mm.substr(0,1) == "0") { //leading zero
      mm=mm.substr(1,1);
    }

    if (newmm != mm) { //ok
      return false;
    }
    if (newyy != yy) { //ok
      return false;
    }

    // Check input=answer
    if (input.substr(0,5) != answer.substr(0,5)) {
      return false;
    }

    // Check date is today or a date not more than one year in the future
    var de = daysElapsed(date,now);
    if (de < 0 || de > 366) { // 1 day on for leap years
      return false;
    }
    // Date is valid, correct, and in the future
    return true;
  }
}

function ShowDateTime(dateStyle) {
	var today = new Date();
	var dStr = "";

	switch (dateStyle)
	{
		case showDateShort:
			dStr = getShortDate2();
			break;
		case showDateTime:
			dStr = today.toLocaleString();
			break;
		case showTime:
			dStr = today.toLocaleTimeString();
			break;
		case showDate:
		default:
			dStr = today.toLocaleDateString();
			break;
	}
	return(dStr);
}

function getShortDate()
{
	var dateObj = new Date();
	var day = leadingZero(dateObj.getDate());
	var month = leadingZero(dateObj.getMonth()+1);
	var year = dateObj.getFullYear();
	year = year.toString();
	var date = day+"/"+month+"/"+year.substr(2);
	return(date);
}

function getShortDate3()
{
	var dateObj = new Date();
	var day = leadingZero(dateObj.getDate());
	var month = leadingZero(dateObj.getMonth()+1);
	var year = dateObj.getFullYear();
	year = year.toString();
	var date = day+"/"+month+"/"+year;
	return(date);
}

function leadingZero(nr)
{
	if (nr < 10) nr = "0" + nr;
	return nr;
}

function popup() {
  window.alert("Incorrect action. Please follow\nyour guide's instructions and try again...");
}

function popup2(cause) {
  var text = "The entry \""+cause+"\" is not valid."

  if (cause == "false" || cause == "true") {
    text = "A tickbox or radio button has not been checked.";
  }
  else if (cause == "" || cause == "//") {
    text = "You have not completed this screen.";
  }

  window.alert(text+"\nPlease follow your guide's instructions and try again...");
}

function displayError(string) {
  window.alert(string);
}


function getLink(url, data, auth)
{
	// string auth is user inputs and correct answers concatenated together
	// auth always is an even number as made up of user input + correct answer
	// url should have a '?' on the end when the function called if there is data to be passed to next screen

	// split auth string into the individual values

	var temp = auth.toString();
	var arr = temp.split("<split>");

	// create arrays to hold the user inputs and the correct values
	// and split values into user inputs and correct answers

	var user = arr.slice(0, arr.length / 2);
	var ans = arr.slice((arr.length / 2));

	// authenticate users answers	
	var authentic = new Boolean(true);
        var cause = "Unknown";

	for(i=0; i<user.length; i++) {
		if(!authenticate(user[i].toLowerCase(),ans[i].toLowerCase())) {
			authentic = false;
			cause = user[i];
		}
	}
	
	if(authentic) {
          var link = location.href = (url+data);
	  return (link);
	}
	else
	{
		popup2(cause);
	}
}

function authenticate(input, answer) {
  // Testing line; remove in final
  if (input == "x") {
    return true;
  }
  else if (input == "x//" || input == "x/x/x" || input == "xxx") {
    return true;
  }

  if (input.length == 8) {
    // May be a date - check this
    // If its not a date, fall through to normal check
    if (checkDate(input, answer)) {
      return true;
    }
  }
  return(checkAnswer(input, answer));
}

function checkAnswer(input, answer) {
  if (input == answer) return true;

  // else remove ALL white space and try again
  var newInput = new String();
  var newAnswer = new String();
  var regX = / /g;

  newInput = input.replace(regX, "");
  newAnswer = answer.replace(regX, "");

  if (newInput == newAnswer) return true;
  return false;
}

function getURLVals(URL)
{
	return(URL.substr(1,URL.length));
}

function getString(ls, token, nullResponse) 
{
	//call with location.search
	
	if (ls.length <= 0 || ls=="?") 
	{
		return (nullResponse);
	}

	ls = ls.substr(1,ls.length);
	
	rExp = /%20/gi;
	return (ls.replace(rExp, token));	
		
}


function checkCompat()
{	
	var compat = new Boolean(true);
	var text = new String();

	if(!navigator.cookieEnabled)
	{
		text = "Warning – Cookies aren’t enabled! You need to activate cookies in your browser to use this site.";
		compat = false;
	}

	if(compat == true)
	{
		IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
		IE6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false;
		IE7 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 7.")!=-1)) ? true : false;
		IE5plus = IE5 || IE6 || IE7;
		if (IE5plus)
		{
			text = "Your browser passed all compatability checks.";
		}
		else
		{
			
			text = "Warning – Your browser is not compatible with this site! eCitizen was designed specifically for <a href=\"http://www.microsoft.com/ie\">Internet Explorer 5+.</a>";
			compat = false;
		}
	}
	return(text);

}

function getShortDate2()
{
	var dateObj = new Date();
	var day2 = parseDay(dateObj.getDay());
	var day = leadingZero(dateObj.getDate());
	var month = parseMonth(dateObj.getMonth());
	var year = dateObj.getFullYear();
	year = year.toString();
	var date = day2+", "+month+" "+day+", "+year;
	return(date);
}

function parseDay(day)
{
	if(day == 0)
	{
		return("Sunday");
	}
	else if(day == 1)
	{
		return("Monday");
	}
	else if(day == 2)
	{
		return("Tuesday");
	}
	else if(day == 3)
	{
		return("Wednesday");
	}
	else if(day == 4)
	{
		return("Thursday");
	}
	else if(day == 5)
	{
		return("Friday");
	}
	else if(day == 6)
	{
		return("Saturday");
	}
}

function parseMonth(month)
{
	if(month == 0)
	{
		return("January");
	}
	else if(month == 1)
	{
		return("February");
	}
	else if(month == 2)
	{
		return("March");
	}
	else if(month == 3)
	{
		return("April");
	}
	else if(month == 4)
	{
		return("May");
	}
	else if(month == 5)
	{
		return("June");
	}
	else if(month == 6)
	{
		return("July");
	}
	else if(month == 7)
	{
		return("August");
	}
	else if(month == 8)
	{
		return("September");
	}
	else if(month == 9)
	{
		return("October");
	}
	else if(month == 10)
	{
		return("November");
	}
	else if(month == 11)
	{
		return("December");
	}
}

function parseCurr()
{
  var currency = getCurrencyCookie(true);
  if (currency == "Sterling") {
    return "0";
  }
  else if (currency == "Dollars") {
    return "1";
  }
  else if (currency == "DolOzNz") {
    return "2";
  }
  else if (currency == "Euro") {
    return "3";
  }
  else
  {
    return "0";
  }
}

function yesterday()
{
	var date = getShortDate3();
	var arr = date.split("/");
	var day = new Number(arr[0]);
	var month = new Number(arr[1]);
	var year = new Number(arr[2]);

	if(day == 1)
	{
		if(month == 1)
		{
			month = 12;
			year = year - 1;
			day = 31;
		}
		else
		{
			if(month == 2)
			{
				day = 28;
			}
			if (month == 4 || month == 6 || month == 9 || month == 11)
			{
				day = 30;
			}
			else
			{
				day = 31;
			}
			month = month - 1;
		}		
		
	}
	else
	{
		day = day - 1;
	}

	return leadingZero(day.toString()) + "/"+ leadingZero(month.toString()) + "/"+ leadingZero(year.toString());
}

function add(vals)
{
	var arr = vals.split("<split>");
	var value = writeCurrencyValue(arr[0]);
	value = value.substring(1,value.length);
	var total = new Number(value);

	for(i=1; i<arr.length; i++) {
		var temp = writeCurrencyValue(arr[i]);
		temp = new Number(temp.substring(1,temp.length));
		total = total + temp;
	}

	total = total.toString();
  	var dec = total.indexOf(".");


	var nl = total.substring(0, dec);
	var nr = total.substring(dec + 1, dec + 3);

	if(total.length > (dec + 3))
	{
		var round = total.substring(dec + 3, dec + 4);
		if (round > "4")
		{
			var temp = new Number(nr) + 1;
			nr = temp.toString();
		}
	}

	return getCurrencySymbol()+nl+"."+nr;
}

function addDirect(vals, suppressSymbol) {
	var arr = vals.split("<split>");
	var total = 0;

	for(i=0; i<arr.length; i++) {
          var f = parseFloat(arr[i]);
          if (f.toString() != "NaN") {
            total = total + f;
          }
	}

        if (total.toString() == "NaN") {
          return "Invalid amount (claim refused)";
        }

        if (total.toString().indexOf(".") != -1) {
          var nl=total.toString().substring(0, total.toString().indexOf("."));
          var nr=total.toString().substring(total.toString().indexOf(".")+1, total.toString().length);
          if (nr.length == 0) nr = nr+"00";
          if (nr.length == 1) nr = nr+"0";
          if (nr.length > 2) nr = nr.substring(0,2);

          if (suppressSymbol) return nl+"."+nr;

          return getCurrencySymbol()+nl+"."+nr;
        }

        if (suppressSymbol) return ""+total;

        return getCurrencySymbol()+total;
}


function checkContent(val, def, box) 
{
	if (val == def)
	{
		box.value="";
	}
	else if (val == "") {
	  box.value = def;
	}	
}
//---------------------------------------------

function getCookie(c_name)
{
//alert(document.cookie.length);
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 ;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return ""
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString());
//alert(getCookie('myCountry'))
}

function checkCookie()
{
username=getCookie('username');
if (username!=null && username!="")
  {
  alert('Welcome again '+username+'!');
  }
else 
  {
  username=prompt('Please enter your name:',"");
  if (username!=null && username!="")
    {
    setCookie('username',username,365);
    }
  }
}

//--> 

