function appendHeader(path){
	
	$('head').append('<link rel="stylesheet" href="'+path+'" type="text/css" />');
		
}

function trim(v){
	return v.replace(/\s+$/,"");
}

function array_unique(ar){
  var sorter = {};
  for(var i=0,j=ar.length;i<j;i++){
    sorter[ar[i]] = ar[i];
  }
  ar = [];
  for(var i in sorter){
    ar.push(i);
  }
  return ar;
}

function implode (glue, pieces) {
    // Joins array elements placing glue string between items and return one string  
    // 
    // version: 1009.2513
    // discuss at: http://phpjs.org/functions/implode    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Waldo Malqui Silva
    // +   improved by: Itsacon (http://www.itsacon.net/)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: implode(' ', ['Kevin', 'van', 'Zonneveld']);    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: implode(' ', {first:'Kevin', last: 'van Zonneveld'});
    // *     returns 2: 'Kevin van Zonneveld'
    
    var i = '', retVal='', tGlue='';
    
    if (arguments.length === 1) {        pieces = glue;
        glue = '';
    }
    if (typeof(pieces) === 'object') {
        if (pieces instanceof Array) {            return pieces.join(glue);
        }
        else {
            for (i in pieces) {
                retVal += tGlue + pieces[i];                tGlue = glue;
            }
            return retVal;
        }
    }    else {
        return pieces;
    }
}

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

CUSTOM THEME FUNCTIONS

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

var showroomCounter = 0;
var showroomTotal = 0;
var slideTimeout = 10000;

function initShowroom(){
	showroomTotal = $(".view-showroom .field-images .field-value").children().length;
	window.setTimeout("changeShowroomImage()",slideTimeout);
}

function changeShowroomImage(){
	$(".view-showroom .field-images .field-value .image-"+showroomCounter).hide();
	
	showroomCounter ++;
	if(showroomCounter >= showroomTotal){
		showroomCounter = 0;
	}
	
	$(".view-showroom .field-images .field-value .image-"+showroomCounter).fadeIn();
	
	window.setTimeout("changeShowroomImage()",slideTimeout);
}

/**
	newsletter subscribe
**/
var newsletterHTMLform = null;
var homepageSlideshowH = null;
$(document).ready(function(){
	
	/*******************************************************
	 * partners page
	 ******************************************************/
	$('.view-partners .record .field-link a').each(function(){
		$(this).html('Visit');
	});
	
	/**************************************************
	 * homepage images
	 *************************************************/
	$('.view-homepage_images .record-0').addClass('active');
	$('.view-homepage_images .views-content').children('.record-sep').each(function(){ $(this).remove(); });
	var totalImages = $('.view-homepage_images .views-content').children().length;
	if(totalImages > 1)
		homepageSlideshowH = window.setTimeout('homepageSlideshow()',timerslideshow);
	
	$('.view-homepage_images .record').hover(
		function(){
			if(totalImages > 1)
				window.clearTimeout( homepageSlideshowH );	
		},
		function(){
			if(totalImages > 1)
				homepageSlideshowH = window.setTimeout('homepageSlideshow()',timerslideshow);
		}
	);
	
	/**************************************************
	 * homepage boxes hook
	 *************************************************/
	rebuildHomepageBoxes();
	
	/**************************************************
	 * showroom
	 *************************************************/
	window.setTimeout("initShowroom()",slideTimeout);
	
	/**************************************************
	 *newsletter
	 *************************************************/
	newsletterHTMLform = $("#newsletter-form-div").html();
	$("#newsletter-form-div").remove();
	
	$('#newsletter-icon img').click(function(){
		jQuery.facebox(newsletterHTMLform);
	});
	
	/**************************************************
	 * tell a friend
	 *************************************************/
	$('#tell-friend-icon img').click(function(){
		var stringData = " <form id='tellafriend_form' method=\"POST\" action=\"/tellfriend\" accept-charset=\"utf-8\" onsubmit=\"tellFriend(); return false;\"><div class=\"field-tf-from form-field\"><div class='field-label'><b>Your E-mail</b>&nbsp;<span class='star'>*</span>&nbsp;</div><div class='field-value'><input type=\"text\" name=\"tf-from\" id=\"tf-from\"  value=\"\"    size='30' /></div></div><div class=\"field-tf-name form-field\"><div class='field-label'><b>Your Name</b>&nbsp;<span class='star'>*</span>&nbsp;</div><div class='field-value'><input type=\"text\" name=\"tf-name\" id=\"tf-name\"  value=\"\"    size='30' /></div></div><div class=\"field-tf-to form-field\"><div class='field-label'><b>To E-mail</b>&nbsp;<span class='star'>*</span>&nbsp;</div><div class='field-value'><input type=\"text\" name=\"tf-to\" id=\"tf-to\"  value=\"\"    size='30' /></div></div><div class=\"field-tf-toname form-field\"><div class='field-label'><b>To Name</b>&nbsp;<span class='star'>*</span>&nbsp;</div><div class='field-value'><input type=\"text\" name=\"tf-toname\" id=\"tf-toname\"  value=\"\"    size='30' /></div></div><div class=\"field-tf-message form-field\"><div class='field-label'><b>Message</b>&nbsp;<span class='star'>*</span>&nbsp;</div><div class='field-value'><textarea name=\"tf-message\" id=\"tf-message\" rows=\"3\" cols=\"28\"    ></textarea></div></div><div class=\"field-submit form-field\"><div class='field-value'><input type=\"submit\" name=\"submit\" id=\"tf-submit\"    value='Send Message'/></div></div><div class=\"field-icon form-field\"><div class='field-value'><img src='/themes/default/images/tell-friend-icon.png' /></div></div></form> ";
		jQuery.facebox(stringData);
	});
	
	/**************************************************
	 * search
	 *************************************************/
	$('#search-form').submit(function(){
		
		var searchTXT = trim( $('#search-form #keywords').val() );
		if( searchTXT=='' ||  searchTXT =='Search our website' || searchTXT.length < 3 ){
			
			alert("Please enter a keyword that is greater than 3 characters to search for it.");
			$('#search-form #keywords').select();
			return false;
		}
	});
	
	/**************************************************
	 * portfolio
	 *************************************************/
	window.setTimeout('portfolioEval()', 600);
	
	/******************************************************
	 * partners and footers
	 ******************************************************/
	var footerPartners = $('#footer #block_partners_footer .content .view-partners').children(".record").length;
	footerPartners = footerPartners * 80;
	$('#footer #block_partners_footer').css('width', footerPartners +'px');
	
	
	/*******************************************************
	 * partners page
	 ******************************************************/
	$('#apply').submit(function(){
		return alterapplyformdisplay();
	});
});

function tellFriend(){
	
	$('#tellafriend_form #tf-submit').val("Sending...");
	$('#tellafriend_form #tf-submit').attr('disabled',true);
	var config = {
		type: 'post',
		
	    success: function(response){
	    	
	    	if( document.getElementById('small-red-message') ){
				$('#facebox .content #small-red-message').html(response);
			}
			else{
				$('#facebox .content').prepend("<div id='small-red-message'>" + response + "</div>");
			}
	    	
	    	$('#tellafriend_form #tf-submit').val("Submit");
			$('#tellafriend_form #tf-submit').attr('disabled',false);
			
			if(response =='Thank you for using our tell a friend feature.')
				closeFacebox();
	    },
	    error: function(){
	    	
	    	alert("Oops, sorry we couldn't send the message to your friends. Please try again in a few minutes.");
	    	
	    	$('#tellafriend_form #tf-submit').val("Submit");
			$('#tellafriend_form #tf-submit').attr('disabled',false);
	    },
	    timeout: function(){
	    	
	    	alert("Oops, it seems there is a timeout in the request. Please try again in a few minutes.");
	    	
	    	$('#tellafriend_form #tf-submit').val("Submit");
			$('#tellafriend_form #tf-submit').attr('disabled',false);
	    }
	};
	$("#tellafriend_form").ajaxSubmit(config);
}

function submitNewsletter(){
		
	if( $('#subscribe-form #subscribe-name').val() == '' ){
		alert("Please enter your name.");
		$('#subscribe-form #subscribe-name').focus();
		return false;
	}
	
	if( $('#subscribe-form #subscribe-email').val() == '' ){
		alert("Please enter your email.");
		$('#subscribe-form #subscribe-email').focus();
		return false;
	}
	
	var sname = $('#subscribe-form #subscribe-name').val();
	var semail= $('#subscribe-form #subscribe-email').val();
	
	$('#subscribe-form #subscribe-submit').val("Processing...");
	$('#subscribe-form #subscribe-submit').attr("disabled",true);
	
	$.ajax({
		url: '/newsletter',
		data: 'subscribe-name='+sname+'&subscribe-email='+semail,
		type: 'post',
		success:function(response){
			
			if( document.getElementById('small-red-message') ){
				$('#facebox .content #small-red-message').html(response);
			}
			else{
				$('#facebox .content').prepend("<div id='small-red-message'>" + response + "</div>");
			}
			
			$('#subscribe-form #subscribe-submit').val("Subscribe");
			$('#subscribe-form #subscribe-submit').attr("disabled",false);
			
			if(response =='Thank you for subscribing.')
				closeFacebox();
		},
		timeout: function(){
			alert("Oops, it seems there is a timeout in the request. Please try again in a few minutes.");
			
			$('#subscribe-form #subscribe-submit').val("Subscribe");
			$('#subscribe-form #subscribe-submit').attr("disabled",false);
		},
		error: function(message){
			
			alert(message.toSource());
			alert("Oops, sorry we couldn't register you to our newsletter. Please try again in a few minutes.");
			
			$('#subscribe-form #subscribe-submit').val("Subscribe");
			$('#subscribe-form #subscribe-submit').attr("disabled",false);
		}
	});
}

function closeFacebox(){
	window.setTimeout("doCloseFacebox()",5000);
}

function doCloseFacebox(){
	 $(document).trigger('close.facebox')
}


function commonPortfolio( obj ){
	
	var img = $( obj ).children().children('.body').children('.body-middle').children().children().children().children().children().children().children();
		
	var preview = $(img).attr('src');
	preview = preview.replace("/thumbnail-200/","/thumbnail-500/");
	var desc = $( obj ).children().children('.body').children('.body-middle').children().children(".field-description").html();
	var link = $( obj ).children().children('.body').children('.body-middle').children().children(".field-link").html();
	
	var recordNumber = $( obj ).attr('class');
	recordNumber = recordNumber.split(' ');
	recordNumber = recordNumber[2];
	recordNumber = recordNumber.replace('record-','');
	
	var strHTML = "<div class='portfolio-preview'><img src="+preview+" /></div><div class='text-portfolio'>"+desc+"</div><div class='c-both w-100'><div class='f-left prev-portfolio'><a href='#' onclick='previousPortfolio("+recordNumber+"); return false;'>Previous</a></div><div class='f-left link-portfolio'>"+link+"</div><div class='f-right next-portfolio'><a href='#' onclick='nextPortfolio("+recordNumber+"); return false;'>Next</a></div></div>";
	
	jQuery.facebox(strHTML);
	
}

function portfolioEval(){
	$(".view-portfolio .record").click(function(){	commonPortfolio( this );	});
}

function previousPortfolio(number){
	
	number--;
	if(number < 0 )
		number = 0;
		
	var imgObj = $(".view-portfolio .record-"+number);
	commonPortfolio( imgObj );
	
}

function nextPortfolio(number){
	
	number++;
	var max = $('.view-portfolio .views-content').children('.record');
	if(number > max )
		number = max;
		
	var imgObj = $(".view-portfolio .record-"+number);
	commonPortfolio( imgObj );
	
}


/**
homepage banner slideshow
**/
var timerslideshow = 10000;
var start = 0;
var maximum = 0;

function homepageSlideshow(){

//$('.view-homepage_images .record').removeClass('active');

$('.view-homepage_images .record-'+start+' .field-image').slideUp(100);

maximum = $('.view-homepage_images .views-content').children('.record').length;
start++;

if(start >= maximum)
	start = 0;

//$('.view-homepage_images .record-'+start).addClass('active');
$('.view-homepage_images .record-'+start+' .field-image').fadeIn(600);

homepageSlideshowH = window.setTimeout('homepageSlideshow()',timerslideshow);

}

/**
	change the form of apply to job post upon submit
**/
function alterapplyformdisplay(){
	$('.apply-content').slideUp();
	$('.apply-content').after("<div class='loading hidden'><img src='/themes/default/images/template/apply-loader.gif' /></div>");
	$('.loading').slideDown();
	return true;
}


/**
	rebuild the listing of text inside the homepage boxes
**/
function rebuildHomepageBoxes(){
	$('.corporate-hp ul li').each(function(){
		var tmp = $(this).html();
		$(this).html("<span>"+tmp+"</span>");
	});
	
	$('.support-hp ul li').each(function(){
		var tmp = $(this).html();
		$(this).html("<span>"+tmp+"</span>");
	});
	
	$('.web-hp ul li').each(function(){
		var tmp = $(this).html();
		$(this).html("<span>"+tmp+"</span>");
	});
	
	$('.product-hp ul li').each(function(){
		var tmp = $(this).html();
		$(this).html("<span>"+tmp+"</span>");
	});
	
}
