//*******************
/* Code to validate Phone numbers */

//************************************************************

// Declaring required variables
var digits = "0123456789";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 7;

/* COMMENT */
function isInteger(s) {   
	var i;
    for ( i = 0; i < s.length; i++ ) {
        // Check that current character is number.
        var c = s.charAt(i);
        if ( ( (c < "0") || (c > "9") ) ) {
        	return false;
        }
    }
    // All characters are numbers.
    return true;
}

/* COMMENT */
function stripCharsInBag(s, bag) {
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for ( i = 0; i < s.length; i++ ) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if ( bag.indexOf(c) == -1 ) {
        	returnString += c;
        }
    }
    return returnString;
}

/* COMMENT */
function checkInternationalPhone(strPhone) {
	s = stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

/* COMMENT */
/*  */
function ValidatePhone(telephone, operator){

	if( operator.value == 0 ) {
		alert('Please choose an operator from the drop down menu'); // 
		operator.focus();
		return false;
	}	
	
	if ( (telephone.value==null) || (telephone.value=="") ) {
		alert('Please Enter your Phone Number');				 // 
		telephone.focus();
		return false;
	}
	if ( checkInternationalPhone(telephone.value) == false ) {
		alert('Please Enter a Valid Phone Number');				 // 
		
		//telephone.value = "";
		
		telephone.focus();
		return false
	}

	return true;
}


/* ALERT_CHOOSE_OPERATOR = "Please choose an operator from the drop down menu"
ALERT_PHONE_NUMBER = "Please Enter your Phone Number"
ALERT_VALID_PHONE = "Please Enter a Valid Phone Number" */



// START ALL EVENTS */
addEvent(window,'load',startEvents,false);

//register the event clic for the three links
function startEvents() {
	startFlagEvents();	// start flags section
	//startMenuEvents();	// start menu section
	//preLoadImages();	// preload some images
}

//***********************************

/* EVENTS SECTION */

function addEvent(element,nomevent,func,catching) {
  if (element.attachEvent) {
    element.attachEvent('on'+nomevent,func);
    return true;
  }
  else if (element.addEventListener) {
      element.addEventListener(nomevent,func,catching);
      return true;
    }
    else
      return false;
}

//************************
// PRELOAD
var arrImages = [
	'images/border_buttonleft_on.jpg', 
	'images/border_buttonleft_off.jpg', 
	'images/bg_button_on.jpg', 
	'images/bg_button_off.jpg', 
	'images/border_buttonright_on.jpg',
	'images/border_buttonright_off.jpg',
	
	'images/flag_sp_on.gif',
	'images/flag_sp_off.gif',
	'images/flag_uk_on.gif',
	'images/flag_uk_off.gif',
	'images/flag_de_on.gif',
	'images/flag_de_off.gif',
	'images/flag_us_on.gif',
	'images/flag_us_off.gif',
	'images/flag_it_on.gif',
	'images/flag_it_off.gif',
	'images/flag_fr_on.gif',
	'images/flag_fr_off.gif',
	'images/flag_jp_on.gif',
	'images/flag_jp_off.gif',
	'images/flag_world_on.gif',
	'images/flag_world_off.gif',
	
	'images/x_2.gif',
	'images/x_1.gif',
	'images/alltel_screen_1.gif',
	'images/alltel_screen_2.gif',
	'images/alltel_screen_3.gif',
	'images/popup_fondo.jpg',
	
	'images/ajax-loader2.gif'
];

function preloadImages() {
	for( var i = 0; i < arrImages.length; i++ ) {
		imgSrc(arrImages[i]);
	}
}

var imgarray = [];

function imgSrc(src) {
	if(!imgarray[src])
	{
		imgarray[src] = new Image();
		imgarray[src].src = src;
	}
	return imgarray[src].src;
}


preloadImages();












// This function must be automatic !!
//function preLoadImages() {
//	if ( document.images ) {
//		var imgs = new Array();
//		for ( var i = 0; i < arrLangs.length; i++ ) {
//			imgs.push( arrLangs[i][4] );
//			imgs.push( arrLangs[i][5] );
//		}
//		for ( i = 0; i < arrMenuOff.length - 1; i++ ) {
//			imgs.push( arrMenuOff[i] );
//		}		
//				
//		pic = [];
//		for(i = 0; i < imgs.length; i++) {
//			pic[i] = new Image(); 
//			pic[i].src = imgs[i]; 
//		}
//	}
//}
//

//*********************************
// VALIDATE FORM
/* Code to validate Phone numbers */

//************************************************************

// Declaring required variables
var digits = "0123456789";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 7;

/* COMMENT */
function isInteger(s) {   
	var i;
    for ( i = 0; i < s.length; i++ ) {
        // Check that current character is number.
        var c = s.charAt(i);
        if ( ( (c < "0") || (c > "9") ) ) {
        	return false;
        }
    }
    // All characters are numbers.
    return true;
}

/* COMMENT */
function stripCharsInBag(s, bag) {
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for ( i = 0; i < s.length; i++ ) {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if ( bag.indexOf(c) == -1 ) {
        	returnString += c;
        }
    }
    return returnString;
}

/* COMMENT */
function checkInternationalPhone(strPhone) {
	s = stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

/* COMMENT */
/*  */
function ValidatePhone(){

	var telephone = document.getElementById('telephone');
	var operator = document.getElementById('operator');
	
	if( operator.value == 0 ) {
		alert('Please choose an operator'); // change by variable
		operator.focus();
		return false;
	}	
	
	if ( (telephone.value==null) || (telephone.value=="") ) {
		alert('Please insert a phone number');				 // change by variable
		telephone.focus();
		return false;
	}
	if ( checkInternationalPhone(telephone.value) == false ) {
		alert('Please insert a valid phone number');				 // change by variable
		
		//telephone.value = "";
		
		telephone.focus();
		return false
	}

	return true;
}

function sendForm() {
	if( !ValidatePhone() ) {
		return;
	}
	document.getElementById('f1').submit();
}

//***********************************

/* AJAX SECTION */

function loadContent(elem_id, url, msg_wait) {
	if( url == '' ) {
		return;
	}

	var connection = BAIXMLHttpRequest();

	connection.onreadystatechange = function() {
		var container = document.getElementById( elem_id );
		if(connection.readyState == 4) {
			container.innerHTML = connection.responseText;
		}
		else {
			container.innerHTML = msg_wait;
		}
	};

	connection.open("GET", url, true);
	connection.send(null);
}

function BAIXMLHttpRequest() {
	var xmlHttp = null;
	if ( window.ActiveXObject ) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
	return xmlHttp;
}





//********************************************************************************
/* FLAGS SECTION */

// arrFlags positions
var arrLangId = 0;
var arrLangActual = 1;
var arrLangImgId = 2;
var arrLangText = 3;
var arrLangOn = 4;
var arrLangOff = 5;

// Start events and properties of the flags
function startFlagEvents() {
	for( i = 0; i < arrLangs.length; i++ ) {
		img = document.getElementById(arrLangs[i][arrLangImgId]);
		if( arrLangs[i][arrLangActual] == 0 ) {
			addEvent(img,'mouseover',toogleImg,false);
			addEvent(img,'mouseout',toogleImg,false);
			addEvent(img,'click',goToLang,false);
			img.style.cursor = 'pointer';
		}
		else {
			img.src = 'images/' + arrLangs[i][arrLangOn];
		}
		img.setAttribute('title', arrLangs[i][arrLangText]);
	}
}

// Returns a position value from the arrLangs
function getArrLangValue(obj, value) {

	if( obj == 'undefined' ) {
		return '';
	}
	for( var i = 0; arrLangs.length; i++ ) {
		if( arrLangs[i][arrLangImgId] == obj.id ) {
			return arrLangs[i][value];
		}
	}
}

// Go to the language location 
function goToLang(e) {
	if (window.event) {
		var img = window.event.srcElement;
	}
	else if (e) {
		var img = e.target;
	}
	else {
		return;
	}
	document.location.href = SCRIPT_NAME + '?' + COUNTRY_IDENTIFIER + '=' + getArrLangValue(img, arrLangId);
}

// Toogles images
function toogleImg(e) {
	if (window.event) {
		var img = window.event.srcElement;
	}
	else if (e) {
		var img = e.target;
	}
	else {
		return;
	}
	
	tmpArr = img.src.split('/');
	if ( tmpArr[tmpArr.length-1] != getArrLangValue(img, arrLangOff) ) {
		img.src = 'images/' + getArrLangValue(img, arrLangOff);
	}
	else {
		img.src = 'images/' + getArrLangValue(img, arrLangOn );		
	}
}

//***************************************************************
/* MENU SECTION */

// arrMenu positions
var arrMenuId = 0;
var arrMenuActual = 1;
var arrMenuExternal = 2;
var arrMenuLink = 3;

// arrMenuOn and arrMenuOff positions
var arrMenuBackLeft = 0;
var arrMenuBackCenter = 1;
var arrMenuBackRight = 2;
var arrMenuStyle = 3;


// Returns a position value from the arrLangs
function getArrMenuValue(obj, value) {
	if( obj == 'undefined' ) {
		return '';
	}
	for( var i = 0; arrMenu.length; i++ ) {
		if( arrMenu[i][arrMenuId] == obj.id ) {
			return arrMenu[i][value];
		}
	}
}

function startMenuEvents() {
	for( i = 0; i < arrMenu.length; i++ ) {
		
		tr = document.getElementById(arrMenu[i][arrMenuId]).parentNode;
		
		if( arrMenu[i][arrMenuActual] != 0 ) {
			setMenuTrOn(tr);
		}
		else {
			addEvent(tr,'mouseover',toogleMenuOn,false);
			addEvent(tr,'mouseout',toogleMenuOff,false);
			addEvent(tr,'click',changeD1,false);
		}

	}
}

var loading = '<div style="padding-top:110px;width:100%;text-align:center;"><img src="images/ajax-loader2.gif" /></div>';

function changeD1(e) {
//	if (window.event) {
//		var obj = window.event.srcElement;
//	}
//	else if (e) {
//		var obj = e.target;
//	}
//	else {
//		return;
//	}
//	do {
//		obj = obj.parentNode;
//	} while ( obj.tagName != 'TR' );
//	
//	var tds = obj.getElementsByTagName('td');
//
//	
//	var is_external = getArrMenuValue(tds[1], arrMenuExternal);
//	var link = getArrMenuValue(tds[1], arrMenuLink);	
//	
//	if( is_external == 0 ) {
//		// AJAX
//		loadContent('D1', '' + link, loading);
//		// ACA HAY QUE RESETEAR LOS BOTONES
//		resetMenu( tds[1].id );
//	}
//	else {
////		location.href = link;
//		window.open( link );
//	}
}



function changeD1_2(link) {
// ID was replaced by details	
	loadContent('details', '' + link, loading);
}






var menuButtonsId = [
	'm_description',
	'm_keyfeatures',
	'm_screenshots',
	'm_goodies',
	'm_weblink'
];

function resetMenu(button_id) {
	var obj = document.getElementById(button_id);
	do {
		obj = obj.parentNode;
	} while ( obj.tagName != 'TR' );

	
	// funcion para quitarle los eventos
	
	obj.mouseover = '';
	obj.mouseout = '';
	obj.click = '';
	
	setMenuTrOn(obj);
	
	
	obj.mouseover = '';
	obj.mouseout = '';
	obj.click = '';
	
}

function none() {
	;
}

function toogleMenuOn(e) {
	if (window.event) {
		var obj = window.event.srcElement;
	}
	else if (e) {
		var obj = e.target;
	}
	else {
		return;
	}
	
	do {
		obj = obj.parentNode;
	} while ( obj.tagName != 'TR' );
	
	 setMenuTrOn(obj);
	 obj.style.cursor = 'pointer';
}

function toogleMenuOff(e) {
	if (window.event) {
		var obj = window.event.srcElement;
	}
	else if (e) {
		var obj = e.target;
	}
	else {
		return;
	}
	
	do {
		obj = obj.parentNode;
	} while ( obj.tagName != 'TR' );
	
	 setMenuTrOff(obj);
}

function setMenuTrOn(tr) {
	var tds = tr.getElementsByTagName('td');
	tds[0].childNodes[0].src = 'images/' + arrMenuOn[arrMenuBackLeft];
	tds[1].style.backgroundImage = 'url(images/' + arrMenuOn[arrMenuBackCenter] + ')';
	tds[1].className = arrMenuOn[arrMenuStyle];
	tds[2].childNodes[0].src = 'images/' + arrMenuOn[arrMenuBackRight];
}

function setMenuTrOff(tr) {
	var tds = tr.getElementsByTagName('td');
	tds[0].childNodes[0].src = 'images/' + arrMenuOff[arrMenuBackLeft];
	tds[1].style.backgroundImage = 'url(images/' + arrMenuOff[arrMenuBackCenter] + ')';
	tds[1].className = arrMenuOff[arrMenuStyle];
	tds[2].childNodes[0].src = 'images/' + arrMenuOff[arrMenuBackRight];
}

//***************************************************************
/* MENU */