var regExpBeginning = /^\s+/;
var regExpEnd = /\s+$/;
var knownExtensions = Array('avi', 'flv', 'mpeg', 'doc', 'docx', 'xls', 'xlsx', 'gif', 'jpg', 'jpeg', 'png', 'pdf');
var iconsPath = '/design/en/images/icons/';


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];}}
}

/**
 * Executes a command when the user presses enter
 * 
 * @param string
 *				type Type of action (form submission, function call,
 *				redirection)
 * @param string
 *				action Action to perform
 * @param ev
 *				Event
 */
function chkEnter(type, action, ev) {
	 if (window.event) {
		// IE
		e = window.event;
		var code = e.keyCode;
	} else {
		// Others
		var code = ev.keyCode;
	}

	if (code == 13) {
		if (type == 'form') {
			eval('document.' + action).submit();
		} else if (type == 'function') {
			eval(action);
		} else if (type == 'url') {
			document.location = action;
		}
	}
}

function changeClass(id, className){
	document.getElementById(id).className = className;
}

function changeStyle(id, property, value){
	eval("document.getElementById('" + id + "').style." + property + " = '" + value + "'");
}

function cleanInput(elt, defaultText){
	var text = elt.value;
	
	if(text == defaultText){
		elt.value = '';
	}
}

function restoreInput(elt, defaultText){
	var text = elt.value;
	
	if(text == ''){
		elt.value = defaultText;
	}
}

/**
 * Builds the lang links (FR / EN)
 */
function setLangLinks(){
	var tags = document.getElementsByClassName('langLink');
	var url = document.location.href;
	var tmp = url.split('http://');
	var tmp = tmp[1].split('/');
	var domain = tmp[0];
	var lang = tmp[1];
	var langFound = false;
	
	if (tmp[1] == 'fr') {
		val = 'en';
		langFound = true;
	}else if(tmp[1] == 'en'){
		val = 'fr';
		langFound = true;
	}else{
		val = 'fr';
	}
	
	var result = 'http://' + domain + '/' + val + '/';
	
	for(var j = 2 ; j < tmp.length ; j++){
		var val = tmp[j];
		result += val;
		
		if(j < tmp.length - 1){
			result += '/';
		}
	}
	
	for(var i = 0 ; i < tags.length ; i++){
		document.getElementById(tags[i].id).href = result;
	}
}

/**
 * Delete spaces on the left and on the right of the string
 * 
 * @param string
 *				str String
 * @return string
 */
function trim(str) {
	return str.replace(regExpBeginning, "").replace(regExpEnd, "");
}

function checkEmail(email){
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (!filter.test(email)) {
		return false;
	}else{
		return(true);
	}
}

function string2ezURL(str){
	str = trim(str);
	str = removeSpecialCharacters(str);
	var tmp = str.split(' ');
	while(tmp.length > 1){
		str = str.replace(' ', '-');
		var tmp = str.split(' ');
	}
	
	var tmp = str.split("'");
	while(tmp.length > 1){
		str = str.replace("'", "-");
		var tmp = str.split("'");
	}
	
	return(str);
}

function searchDistributors(region){
	var object_id = 0;
	region = string2ezURL(region);
	
	// Search for the region's object_id
	for (var i = 0; i < regions.length; i++) {
		var tmp = string2ezURL(regions[i][0]);
		if(tmp == region){
			object_id = regions[i][1];
		}
	}
	
	document.location = baseURL + 'Distributors/(region)/' + region + '/(object_id)/' + object_id + '';
}

function saveAccount(){
	var first_name = trim(document.getElementById('first_name').value);
	var last_name = trim(document.getElementById('last_name').value);
	var email = trim(document.getElementById('email').value);
	var street = trim(document.getElementById('street').value);
	var city = trim(document.getElementById('city').value);
	var zip = trim(document.getElementById('zip').value);
	
	var _country = document.getElementById('country');
	var country = _country.options[_country.selectedIndex].value;
	
	//var country = document.getElementById('country').selectedIndex;
	var phone = document.getElementById('phone').value;
	var state = document.user_form.State.value;
	
	//var _state = document.getElementById('no_state');
	//var state = _state.options[_state.selectedIndex].value;
	
	var emailValid = false;
	var error = '';
	
	if(first_name == ''){
		error += '<p class="error">- ' + translations[4] + '</p>';
	}
	if(last_name == ''){
		error += '<p class="error">- ' + translations[5] + '</p>';
	}
	if(email == ''){
		error += '<p class="error">- ' + translations[1] + '</p>';
	}else{
		emailValid = checkEmail(email);
		
		if(emailValid == false){
			error += '<p class="error">- ' + translations[3] + '</p>';
		}
	}
	if(street == ''){
		error += '<p class="error">- ' + translations[6] + '</p>';
	}
	if(city == ''){
		error += '<p class="error">- ' + translations[7] + '</p>';
	}
	if(zip == ''){
		error += '<p class="error">- ' + translations[8] + '</p>';
	}else{
		var length = zip.length;
		var tmp = zip.split(' ');
		
		if(length != 6 && tmp.length != 2){
			//error += '<p class="error">- ' + translations[8] + '</p>';
		}else if(length == 6){
			document.getElementById('zip').value = zip.substr(0, 3) + ' ' + zip.substr(3, 3);
		}
	}
	if(country == '0'){
		error += '<p class="error">- ' + translations[9] + '</p>';
	}
	if(state == '0'){
		error += '<p class="error">- ' + translations[10] + '</p>';
	}
	if(phone == ''){
		error += '<p class="error">- ' + translations[11] + '</p>';
	}else{
		var length = phone.length;
		var tmp = phone.split('-');
		
		if(length != 10 && tmp.length != 3){
			error += '<p class="error">- ' + translations[12] + '</p>';
		}else if(length == 10 && isNaN(phone)){
			error += '<p class="error">- ' + translations[12] + '</p>';
		}else if(length == 10){
			document.getElementById('phone').value = phone.substr(0, 3) + '-' + phone.substr(3, 3) + '-' + phone.substr(6, 4);
		}
	}
	
	if(error == ''){
		var result = true;
		
		document.getElementById('textComment').value = document.getElementById('textComment').value + '\n\n\nTel : ' + document.getElementById('phone').value;
		document.getElementById('textComment').value = document.getElementById('textComment').value + '\n\n' + document.getElementById('selShipping').value;
		document.getElementById('textComment').readOnly = true;
		
		// Hides the submit button to prevent double/triple... clicks
		document.getElementById('btnSubmit').style.display = 'none';
		document.getElementById('divWaiting').style.display = 'block';
	}else{
		winx = $(window).width();
		winy = $(window).height();
		$('#divErrors').css('left', (winx/2)-150);
		/*$('<div id="bodyShadow" class="body_shadow"></div>').css({
			'width': winx,
			'height':winy
		}).appendTo("body").fadeIn("fast");*/
		$('#errorMsg').html(error);
		$('#divErrors').fadeIn("slow");
		
		var result = false;
	}
	
	return(result);
}

function sendEmail(){
	var name = trim(document.getElementById('name').value);
	var company = trim(document.getElementById('company').value);
	var email = trim(document.getElementById('email').value);
	var content = trim(document.getElementById('content').value);
	var emailValid = false;
	var error = '';
	
	if(name == ''){
		error += '<p class="error">- ' + translations[0] + '</p>';
	}
	if(email == ''){
		error += '<p class="error">- ' + translations[1] + '</p>';
	}else{
		emailValid = checkEmail(email);
		
		if(emailValid == false){
			error += '<p class="error">- ' + translations[3] + '</p>';
		}
	}
	if(content == ''){
		error += '<p class="error">- ' + translations[2] + '</p>';
	}
	
	if(error == ''){
		var name = escape(document.form.name.value);
		var company = escape(document.form.company.value);
		var email = escape(document.form.email.value);
		var content = escape(document.form.content.value);
		var url = '/phpscripts/send_email.php';
		var params = 'from=' + email + '&content=' + content + '&email_template=contact&name=' + name + '&company=' + company + '';
		var where = document.getElementById('divAjax');
		
		AjaxPostData(url, params, receive_ajax_send, where);
	}else{
		winx = $(window).width();
		winy = $(window).height();
		$('#divErrors').css('left', (winx/2)-150);
		/*$('<div id="bodyShadow" class="body_shadow"></div>').css({
			'width': winx,
			'height':winy
		}).appendTo("body").fadeIn("fast");*/
		$('#errorMsg').html(error);
		$('#divErrors').fadeIn("slow");
	}
}

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.innerHTML = limitNum - limitField.value.length;
	}
}

function loadCoordinates(){
	var email = document.getElementById('email').value;
	var where = document.getElementById('ajaxAnswer');
	
	if (email != '') {
		var url = '/phpscripts/load_coordinates.php?email=' + email;
	}else{
		var url = '/phpscripts/load_coordinates.php';
	}
	
	AjaxGetData(url, receive_ajax_user_account, where);
}

function hideError(){
	$('#divErrors').fadeOut("fast");
	//$('#bodyShadow').fadeOut("slow").remove();
}

function triggerClickOn(id){
	document.getElementById(id).click();
}

function pause(delay){
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); }
	while(curDate-date < delay);
}

function getMouseCoordinates(e){
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}
	else { // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}
	if (tempX < 0) {
		tempX = 0;
	}
	if (tempY < 0) {
		tempY = 0;
	}
}

function getEltCoordinates(id){
	var obj = document.getElementById(id);
	var curleft = 0;
	var curtop = 0;
	
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) {
		curleft += obj.x;
		curtop += obj.y;
	}
	var result = Array(curleft, curtop);
	//alert(curleft+', '+curtop);
	
	return(result);
}

function openURL(url){
	var tmp = url.split('http://');
	
	if(tmp.length == 1){
		url = 'http://' + url;
	}
	window.open(url, '', 'resizable=yes,scrollbars=yes,toolbar=yes,location=yes,menubar=yes,statusbar=yes');
}

function removeSpecialCharacters(str){
	var r = str;
	r = r.replace(new RegExp(/[àáâãäå]/g),"a");
	r = r.replace(new RegExp(/æ/g),"ae");
	r = r.replace(new RegExp(/ç/g),"c");
	r = r.replace(new RegExp(/[èéêëē]/g),"e");
	r = r.replace(new RegExp(/[ìíîï]/g),"i");
	r = r.replace(new RegExp(/ñ/g),"n");	    
	r = r.replace(new RegExp(/[òóôõö]/g),"o");
	r = r.replace(new RegExp(/œ/g),"oe");
	r = r.replace(new RegExp(/[ùúûü]/g),"u");
	r = r.replace(new RegExp(/[ýÿ]/g),"y");
	
	r = r.replace(new RegExp(/[ÀÁÂÃÄÅ]/g),"A");
	r = r.replace(new RegExp(/[ÈÉÊË]/g),"E");
	r = r.replace(new RegExp(/[ìíîï]/g),"I");
	r = r.replace(new RegExp(/Ñ/g),"N");	    
	r = r.replace(new RegExp(/[ÒÓÔÕÖ]/g),"O");
	r = r.replace(new RegExp(/[ÙÚÛÜ]/g),"U");
	
	return(r);
}

function getPageSizeWithScroll(){
	if( window.innerHeight && window.scrollMaxY ) {// Firefox
		pageWidth = window.innerWidth + window.scrollMaxX;
		pageHeight = window.innerHeight + window.scrollMaxY;
	} else if ( document.body.scrollHeight > document.body.offsetHeight ) { // all but Explorer Mac
		pageWidth = document.body.scrollWidth;
		pageHeight = document.body.scrollHeight;
	} else {// works in Explorer 6 Strict, Mozilla (not FF) and Safari
		pageWidth = document.body.offsetWidth + document.body.offsetLeft;
		pageHeight = document.body.offsetHeight + document.body.offsetTop;
	}
	arrayPageSizeWithScroll = new Array(pageWidth,pageHeight);
	//alert( 'The height is ' + yWithScroll + ' and the width is ' + xWithScroll );
	return arrayPageSizeWithScroll;
}

function addOnFocusToA(){
	var as = document.getElementsByTagName('a');
	
	for(var i  =0 ; i < as.length ; i++){
		if (window.addEventListener) { // Mozilla, Netscape, Firefox
			as[i].addEventListener('focus', function(){
				if (this.blur) 
					this.blur()
			}, false);
		}else{
			as[i].attachEvent('focus', function(){
				if (this.blur) 
					this.blur()
			}, false);
		}
	}
}

function buildFoldersLinks(){
	var tags = document.getElementsByClassName('mediaFolder');
	var url = document.location.href;
	var tmp = url.split('/');
	var parentLink = '';
	
	// Checks if we need a parent link
	var tmpParent = url.split('/Photos-Medias/');
	
	if(tmpParent.length == 2){
		var tmpParent2 = tmpParent[1].split('/');
		
		for(var i = 0 ; i < tmpParent2.length - 3 ; i++){
			if(tmpParent2[i] != ''){
				parentLink +=  '/' + tmpParent2[i];
			}
		}
		document.getElementById('aParentLink').href = tmpParent[0] + '/Photos-media' + parentLink + '/(extranet)/1';
		document.getElementById('parentLink').style.display = 'inline';
	}
	
	for(var i = 0 ; i < tags.length ; i++){
		var folder = trim(tags[i].rel);
		var testSpace = folder.split(' ');
		
		// Replaces ' ' by '-' for ezPublish compatibility
		while(testSpace.length > 1){
			folder = folder.replace(' ', '-');
			testSpace = folder.split(' ');
		}
		
		folder = folder.replace(/à/g,"a");
		folder = folder.replace(/â/g,"a");
		folder = folder.replace(/â/g,"a");
		folder = folder.replace(/æ/g,"e");
		folder = folder.replace(/é/g,"e");
		folder = folder.replace(/ê/g,"e");
		folder = folder.replace(/ë/g,"e");
		folder = folder.replace(/è/g,"e");
		folder = folder.replace(/é/g,"e");
		folder = folder.replace(/ï/g,"i");
		folder = folder.replace(/ô/g,"o");
		folder = folder.replace(/ù/g,"u");
		folder = folder.replace(/û/g,"u");
		folder = folder.replace(/ç/g,"c");
		folder = folder.replace(/Á/g,"A");
		folder = folder.replace(/Â/g,"A");
		folder = folder.replace(/Æ/g,"E");
		folder = folder.replace(/È/g,"E");
		folder = folder.replace(/É/g,"E");
		folder = folder.replace(/Ê/g,"I");
		folder = folder.replace(/Ï/g,"I");
		folder = folder.replace(/Ô/g,"O");
		folder = folder.replace(/Ù/g,"U");
		folder = folder.replace(/Û/g,"U");
		folder = folder.replace(/Ç/g,"C");
		
		url = url.replace('/(extranet)/1', '');
		folder += '/(extranet)/1';
		
		if(tmp[tmp.length - 1] == ''){
			tags[i].href = url + folder;
		}else{
			tags[i].href = url + '/' + folder;
		}
	}
}

function buildFilesIcons(){
	var tags = document.getElementsByClassName('fileIcon');
	
	for (var i = 0; i < tags.length; i++) {
		var id = tags[i].id;
		var tmp = id.split('_');
		var a = document.getElementById('fileLink_' + tmp[1]);
		var src = a.href;
		var maxWidth = a.rel;
		
		var ext = getExtension(src);
		
		if(ext == 'img'){
			var dimensions = getImgSize(src);
			
			tags[i].src = src;
			
			if(dimensions[0] > dimensions[1]){
				tags[i].width = maxWidth;
			}else{
				tags[i].height = maxWidth;
			}
		}else if(in_array(ext, knownExtensions)){
			tags[i].src = iconsPath + 'icon_' + ext + '.gif';
		}else{
			tags[i].src = iconsPath + 'icon_default.gif';
		}
	}
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function replacesSeps(){
	var tags = document.getElementsByClassName('labelMedia');
	
	for (var i = 0; i < tags.length; i++) {
		var tmp1 = trim(tags[i].innerHTML);
		var tmp = tmp1.split('_');
		
		while(tmp.length > 1){
			tags[i].innerHTML = tags[i].innerHTML.replace('_', ' ');
			tmp = tags[i].innerHTML.split('_');
		}
	}
	
	for (var i = 0; i < tags.length; i++) {
		var tmp1 = trim(tags[i].innerHTML);
		var tmp = tmp1.split('-');
		
		while(tmp.length > 1){
			tags[i].innerHTML = tags[i].innerHTML.replace('-', ' ');
			tmp = tags[i].innerHTML.split('-');
		}
	}
}

function getExtension(src){
	var tmp = src.split('.');
	var max = tmp.length - 1;
	var ext = tmp[max];
	
	return(ext);
}

function showNews(id){
	var divNews = document.getElementsByClassName('news');
	
	for(var i = 0 ; i < divNews.length ; i++){
		if(divNews[i].id == 'divNews_' + id){
			divNews[i].style.display = 'block';
		}else{
			divNews[i].style.display = 'none';
		}
	}
}

function showNewsDiv(num){
	var divNews = document.getElementsByClassName('divNews');
	
	for(var i = 0 ; i < divNews.length ; i++){
		if(divNews[i].id == 'divNews' + num){
			divNews[i].style.display = 'block';
		}else{
			divNews[i].style.display = 'none';
		}
	}
	
	if (num == 1) {
		document.getElementById('divNext').style.display = 'block';
		document.getElementById('divPrev').style.display = 'none';
	}else if(num == nbDivs){
		document.getElementById('divNext').style.display = 'none';
		document.getElementById('divPrev').style.display = 'block';
	}else{
		document.getElementById('divNext').style.display = 'block';
		document.getElementById('divPrev').style.display = 'block';
	}
}

function showNextNews(){
	var nb = nbDivs;
	
	if(currentNewsDiv < nb){
		var i = currentNewsDiv + 1;
	}else{
		var i = nbDivs;
	}
	showNewsDiv(i);
	currentNewsDiv = i;
}

function showPrevNews(){
	var nb = nbDivs;
	
	if(currentNewsDiv > 1){
		var i = currentNewsDiv - 1;
	}else{
		var i = 1;
	}
	showNewsDiv(i);
	currentNewsDiv = i;
}

function checkOrderForm(){
	var error = '';
	var email = document.form.email.value;
	var name = document.form.name.value;
	var company_name = document.form.company_name.value;
	var phone = document.form.phone.value;
	var deadline = document.form.deadline.value;
	var type = document.form.type.value;
	var width = document.form.width.value;
	var height = document.form.height.value;
	
	if(type == 'web'){
		var max_weight = document.form.max_weight.value;
		var link = document.form.link.value;
	}else{
		var colors = document.form.colors.value;
		var bleed = document.form.bleed.value;
	}
	
	if(email == ''){
		error += translations[1];
	}
	if(name == ''){
		error += '\n' + translations[0];
	}
	if(company_name == ''){
		error += '\n' + translations[20];
	}
	if(phone == ''){
		error += '\n' + translations[11];
	}
	if(deadline == ''){
		error += '\n' + translations[13];
	}
	if(width == ''){
		error += '\n' + translations[14];
	}
	if(height == ''){
		error += '\n' + translations[15];
	}
	if(type == 'web' && max_weight == ''){
		error += '\n' + translations[16];
	}
	if(type == 'web' && link == ''){
		error += '\n' + translations[17];
	}
	if(type == 'print' && colors == ''){
		error += '\n' + translations[18];
	}
	if(type == 'print' && bleed == ''){
		error += '\n' + translations[19];
	}
	
	if(error != ''){
		alert(error);
	}else{
		document.form.submit();
	}
}

function selectStates(){
	var country = document.getElementById('country').value;
	
	if(country == 'canada' || country == 'Canada'){
		document.getElementById('no_state').style.display = 'none';
		document.getElementById('no_state').name = 'State_tmp';
		document.getElementById('state_us').style.display = 'none';
		document.getElementById('state_us').name = 'State_tmp';
		document.getElementById('state_ca').style.display = 'block';
		document.getElementById('state_ca').name = 'State';
	}else if(country == 'united states' || country == 'United States of America' || country == 'united states of america'){
		document.getElementById('no_state').style.display = 'none';
		document.getElementById('no_state').name = 'State_tmp';
		document.getElementById('state_ca').style.display = 'none';
		document.getElementById('state_ca').name = 'State_tmp';
		document.getElementById('state_us').style.display = 'block';
		document.getElementById('state_us').name = 'State';
	}else{
		document.getElementById('state_ca').style.display = 'none';
		document.getElementById('state_ca').name = 'State_tmp';
		document.getElementById('state_us').style.display = 'none';
		document.getElementById('state_us').name = 'State_tmp';
		document.getElementById('no_state').style.display = 'block';
		document.getElementById('no_state').name = 'State';
	}
}

function checkQuantities(){
	var texts = document.getElementsByTagName('input');
	var over = false;
	
	for(var i = 0 ; i < texts.length ; i++){
		var id = texts[i].id.split('_');
		var value = parseInt(texts[i].value);
		
		if(id[0] == 'qty' && value > 20){
			over = true;
		}
	}
	return(over);
}

function updateCart(){
	over = checkQuantities();
	
	if (over == true) {
		alert(translations[21]);
	}else{
		triggerClickOn('btn_update_qties')
	}
}

function checkForm(){
	over = checkQuantities();
	
	if (over == true) {
		alert(translations[21]);
		return(false);
	}else{
		return(true);
	}
}



$(document).ready(function() {	
	$(".warning-extranet .btn").click(function() {
		$(".warning-extranet").fadeOut("fast");
	});

	$("#btn-lost").click(function() {
		$(".login-box-active").fadeIn("fast");
		$(".login-box").hide();
	});
	$(".btn_view_finishes").click(function(){
		$("#ulTextures").addClass("print_hide");
	});
	$(".btn_hide_finishes").click(function(){
		$("#ulTextures").removeClass("print_hide");
	});
});

$(document).ready(function() {	
/*CUFON EXTRANET*/
	Cufon.replace('h3', {hover: true, fontFamily: 'Chalet-NewYorkNineteenEighty'});
	Cufon.replace('h4', {hover: true, fontFamily: 'Chalet-ParisNineteenEighty'});
	Cufon.replace('.btn', {hover: true, fontFamily: 'Chalet-NewYorkNineteenEighty'});
	Cufon.replace('a.hub', {hover: true, fontFamily: 'Chalet-LondonNineteenEighty'});
	Cufon.replace('ul#nav', {hover: true, fontFamily: 'Chalet-NewYorkNineteenEighty'});


}); 

(function(){
  // if firefox 3.5+, hide content till load (or 3 seconds) to prevent FOUT
  var d = document, e = d.documentElement, s = d.createElement('style');
  if (e.style.MozTransform === ''){ // gecko 1.9.1 inference
    s.textContent = 'body{visibility:hidden}';
    e.firstChild.appendChild(s);
    function f(){ s.parentNode && s.parentNode.removeChild(s); }
    addEventListener('load',f,false);
    setTimeout(f,3000); 
  }
})();



document.getElementsByClassName = function(class_name) {
	var docList = this.all || this.getElementsByTagName('*');
	var matchArray = new Array();

	/*Create a regular expression object for class*/
	var re = new RegExp("(?:^|\\s)"+class_name+"(?:\\s|$)");
	for (var i = 0; i < docList.length; i++) {
		if (re.test(docList[i].className) ) {
			matchArray[matchArray.length] = docList[i];
		}
	}

	return matchArray;
}

