// GLOBAL CONSTANTS
var SPEED = 700;
var SPEED_FRICTION = .8;
var GALLERY_OFFSET = 140;
var MAIN_BG_COLOR = 'bg_color_green';
var MAIN_FG_COLOR = 'fg_color_black';
var EASING = 'easeInOutQuart';
var URL_LOCATIONS = ['lang', 'area_one', 'area_two', 'area_three'];
var TIME = new Date().getTime();
var hashChangeInterval;

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



//QUERY
function GET(v){
	if(!HTTP_GET_VARS[v]){return 'undefined';}
	return HTTP_GET_VARS[v];
}

HTTP_GET_VARS = new Array();
var GETString = document.location.search.substr(1,document.location.search.length);
if(GETString != '') {
	gArr = GETString.split('&');
	for(i = 0 ; i < gArr.length; ++i) {
		v = '';
		vArr = gArr[i].split('=');
		if (vArr.length > 1) v = vArr[1];
		HTTP_GET_VARS[unescape(vArr[0])] = unescape(v);
	}
}


function SET(key, value) {
	var currentURL = document.location.toString();
	var currentHash = document.location.hash.toString();
	var endIndex = currentURL.indexOf('#');
	if(endIndex == -1) endIndex = currentURL.length;
	
	currentURL = currentURL.substring(0, endIndex);
	
	var urlLength = currentURL.length;
	var queryAdd = '&';
	if (currentURL.indexOf('?') == -1) queryAdd = '?';
	
	if(currentURL.indexOf(key + '=') > 0)
		   currentURL = currentURL.replace(key + '=' + GET(key), key + '=' + value);
	else currentURL = currentURL + queryAdd + key + '=' + value;
	
	document.location.href = currentURL + currentHash;
}




// URL LOCATION
function urlGet(v) {
	if(!HTTP_URL_LOCATION[v]){return 'undefined';}
	return HTTP_URL_LOCATION[v];
}

HTTP_URL_LOCATION = new Object();
var URLString = document.location.toString().replace(BASE_PATH, '');
if(URLString != '' && URLString != '/') {
	if(URLString.substring(0, 1) == '/') URLString = URLString.substring(1);
	var gArr = URLString.split('/');
	for(i = 0; i < gArr.length; i++) {
		if (URL_LOCATIONS[i] && gArr[i] != '')
			HTTP_URL_LOCATION[unescape(URL_LOCATIONS[i].toString())] = gArr[i];
	}
}



// GLOBAL FUNCTIONS
function isIE(){
	return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}

//DEBUG
function debug(str){ $('<span class="debug" style="position:fixed;bottom:0px;left:0px;z-index:9999;background:rgba(255,255,255,.9);padding:3px 20px;border-right:1px solid #fff">' + str + '</span>').prependTo('body'); }
function clearDebug(){$('.debug').remove();}





//COOKIES
function readCookie(name) {
	var cookiename = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++){
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(cookiename) == 0) return c.substring(cookiename.length,c.length);
	}
	return null;
}
function setCookie(name,value,$days,$p){
	if(!$p) $p="/";
	if($days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}else var expires = "";
	
	document.cookie = name+"="+value+expires+"; path="+$p;
}
function eraseCookie(n) {
	createCookie(n,"",-1);
}

function isCookieEnabled(checkCookie){
	cookieEnabled = (document.cookie.indexOf(checkCookie)!=-1)? true : false;
	return cookieEnabled;
}






// CUFON FONT
function setCufonFonts(target) {
	try {
		if (target == null) target = '.cufon, h1, h2, h3, h5, h6';
		Cufon.replace(target);
		refreshCufon();
	} catch(error) {}
}

function refreshCufon() {
	try {
		Cufon.refresh();
	} catch(error) {}
}









// SETTING SCROLLABLE HASHES
function setScrollableAnchors() {
	$("a[href^='#']").click(function (e) {
		if(this.hash == '') return;
		if($(this).attr('leave') == 'true') return;
		
		var element = this.hash;
		e.preventDefault();
		scrollBodyTo(element);
	});
}

function scrollBodyTo(element) {
	if ($(element).size() == 0) return;
	
	$.scrollTo(element, SPEED, {
		offset: 2,
		easing: EASING
	});
}






// BG COLOR
function setMainBGColor() {
	var footerClasses = $('#footer').attr("class").toString().split(" ");
	for (var i = 0; i < footerClasses.length; i++) {
		if(footerClasses[i].indexOf("bg_color_") >= 0) {
			MAIN_BG_COLOR = footerClasses[i];
		}
		if(footerClasses[i].indexOf("fg_color_") >= 0) {
			MAIN_FG_COLOR = footerClasses[i];
		}
	}
	
	$('body, html').addClass(MAIN_BG_COLOR);
}



function collapseList() {
	if ($('#list.collapse').size() == 0 || $('.list_title').size() <= 1) return;
	
	$('#list .arrow_down').click(function(e){
		var targetID = $(this).attr('href');
		$(targetID).next().slideDown(SPEED, EASING);
	});
	
	$('.list_entry_holder').slideUp(0);
	$('.list_entry_holder:first').slideDown(0);
	$('.list_title').css('cursor', 'pointer').click(function(){
		$(this).next().slideToggle(SPEED, EASING);
	});
}



// REPLACING DEFAULT SELECTBOX
function setClientSelectList() {
	if ($('#client_select_form').size() == 0) return;
	
	$('.list_entry_holder').each(function(){
		var wasHidden = false;
		if($(this).hasClass('hidden')) wasHidden = true;
		$(this).removeClass('hidden');
		
		if (wasHidden) $(this).children().delay(100).slideUp(50);
	});
	
	// HIDE SUBMIT
	$('#client_select_form_submit').addClass('hidden');
	
	
	$('#client_select').change(function(){
			var targetClientID = ($(this).attr('value'));
			var actualListHolder = $('.list_entry_holder.active');
			
			var counter = 0;
			var length = actualListHolder.children().size();
			
			actualListHolder.children().each(function(){
				$(this).delay(counter * SPEED / 8)
				 .slideUp(SPEED / 2, EASING);
				counter++;
			});
			
			
			setTimeout(function(){
				
				var queryString = "action=get_project_list" +
					"&lang=" + urlGet('lang') +
					"&id=" + targetClientID;
				
				$.ajax({
					url: BASE_PATH + 'backend/action.php',
					type: "GET",
					data: queryString,
					success: function(data) {
						
						var targetListHolder = $(data);
						var counter2 = 0;
						var length2 = targetListHolder.children().size();
						
						targetListHolder.insertAfter('#list');
						
						setCufonFonts(targetListHolder.find('h2'));
						setAjaxList(targetListHolder.find('.more_projects'));
						setScrollableAnchors();
						
						actualListHolder.remove();
						
						targetListHolder.children().each(function(){
							$(this).slideUp(0)
							 .delay((SPEED * SPEED_FRICTION / 8) * counter2)
							 .slideDown(SPEED / 4, EASING);
							 
							counter2++;
						});
						
					}
				});
				
			}, (length * SPEED / 8.5) + (SPEED * 0.5));
			
	});
	
}



function setAjaxList(searchTarget) {
	if (searchTarget == null) searchTarget = '.more_projects';
	if($(searchTarget).size() == 0) return;
	
	$('.more_projects').click(function(e){
		e.preventDefault();
		
		var target = $(this);
		
		var from = target.attr('href').replace('#more', '').toString();
		var id = '-1';
		if(from.indexOf('id') >= 0) {
			id = from.substring(from.indexOf('id') + 2);
			from = from.substring(0, from.indexOf('id'));
		}
		
		var queryString = "action=get_project_list" +
			"&lang=" + urlGet('lang') +
			"&from=" + from +
			"&id=" + id;
		
		$.ajax({
			url: BASE_PATH + 'backend/action.php',
			type: "GET",
			data: queryString,
			success: function(data) {
				var newEntries = $(data);
				var reachedLast = false
				
				if(newEntries.siblings('.last_list_item').size() > 0) {
					newEntries.siblings('.last_list_item').remove();
					reachedLast = true;
				}
				
				newEntries.insertBefore(target.parent());
				setCufonFonts(newEntries.find('h2'));
				setScrollableAnchors();
				
				var count = 0;
				newEntries.slideUp(0).each(function(){
					count++;
					$(this).delay(25 * count * count + 50 * count).slideDown(SPEED / 2, EASING);
				});
				
				target.attr('href', '#more' + target.parent().parent().children('.list_entry').size() + 'id' + id);
				if(reachedLast) target.parent().slideUp(SPEED / 2, EASING, function(){target.parent().remove()});
			}
		});
	});
}



function setSelectBoxes() {
	$('.form_select').each(function(){
		var source = $(this);
		var target = $('<div class="form_select_holder"></div>');
		
		var title = $('<div class="form_select"></div>');
		title.css('margin','0');
		target.append(title);
		
		var holder = $('<div class="form_select_options_holder"></div>');
		holder.css({'padding': '10px', 'margin': '5px -10px -10px'});
		target.append(holder);
		
		var ID = 0;
		source.children().each(function(){
			ID += 1;
			if($(this).attr('selected')) title.html($(this).html());
			
			var entry = $('<p targetID="' + ID + '" class="entry">' + $(this).html() + '</p>');
			holder.append(entry);
			
			entry.click(function(){
				var targetOption = source.children(':nth-child(' + $(this).attr('targetID') + ')');
				if(title.html() == targetOption.html()) return;
				
				if(title.hasClass('active')) title.removeClass('active');
				
				title.html(targetOption.html());
				targetOption.attr('selected', 'selected');
				holder.slideUp(SPEED / 1.5, EASING);
				
				source.trigger('change');
			});
		});
		
		holder.addClass('hidden').delay(10).removeClass('hidden').slideUp(0);
		
		title.click(function(){
			if(title.hasClass('active')) title.removeClass('active');
			else title.addClass('active');
			
			holder.slideToggle(SPEED / 1.5, EASING);
		});
		
		source.addClass('hidden');
		source.parent().append(target);
	});
}






function setDetailOverlays() {
	//$('.detail_image_video_overlay').fadeTo(0, 0.5);
}









// GALLERY SLIDER

var VideoID = 0;

function setGallerySlider() {
	if($('#gallery_holder').size() == 0) return;
	
	function setHash(index) {
		index = parseInt(index);
		if (isNaN(index)) index = 0;
		if (index <= 0) index = 0;
		if (index >= length) index = length - 1;
		document.location.hash = "#/" + index;
	}
	
	function To(index, setHash, speed) {
		function correct(val){
			if(val.toString().length == 1) return "0" + val.toString();
			return val.toString();
		}
		
		id = parseInt(index);
		if (isNaN(id)) id = 0;
		if (id <= 0) id = 0;
		if (id >= length) id = length - 1;
		
		if (speed == null) speed = SPEED;
		if (setHash == null) setHash = true;
		if (setHash == true) document.location.hash = "#/" + id;
		
		var target = $('#gallery_holder .gallery_entry:eq(' + (id) + ')');
		var targetLeft = target.position()["left"];
		
		$('#gallery_holder .gallery_entry').each(function(){
			if($(this) != target) {
				var overlay = $(this).children('.overlay:first');
				overlay.css('height', '100%');
				overlay.fadeTo(speed / 2, .5);
			}
		});
		
		var overlay = target.children('.overlay');
		overlay.fadeTo(speed / 2, 0, function(){ overlay.css('height', '0px'); });
		
		// TODO!!
		//console.log( GALLERY_OFFSET - targetLeft );
		
		holder.animate({
			'left': GALLERY_OFFSET - targetLeft
		}, speed, EASING);
		
		next.attr('href', '#' + Math.max(length - 1, id + 1));
		prev.attr('href', '#' + Math.min(0, id - 1));
		
		location.html(correct(id + 1) + '&nbsp;/&nbsp;' + correct(length));
		
		
		//try { document.getElementById(videos[VideoID]).pause(); } catch(e) {}
		try { $('video').not(':eq('+index+')').each(function(){$(this).get(0).pause();}); } catch(e) {}
		
		VideoID = id;
		updateVideoControls();
	}
	
	if ($('.gallery_entry').size() == 1)
		$('#next_prev_controls').addClass('hidden');
	
	$('.gallery_entry').each(function(){
		var overlay = $('<div class="overlay"></div>');
		overlay.css({
			'position': 'absolute',
			'left': '0px',
			'top': '0px',
			'z-index': '999',
			'width': '100%',
			'height': '100%',
			'background': '#000'
		});
		overlay.fadeTo(0, 0.5);
		$(this).append(overlay);
		
		Size += $(this).outerWidth(true) + 10;
	});
	
	var holder = $('#gallery_container');
	var Size = 0;
	
	function computeSize() {
		Size = 0;
		
		$('.gallery_entry').each(function(){
			Size += $(this).outerWidth(true) + 10;
		});
		
		holder.css('width', (parseInt(Size) + GALLERY_OFFSET + 200) + 'px');
	}
	
	var classes = $('#gallery_size').attr('class');
	var width_class = classes.substring(classes.indexOf('size'));
	if(width_class.lastIndexOf(' ') > 0) width_class = width_class.substring(0, width_class.lastIndexOf(' '));
	var width = parseInt(width_class.toString().replace(/_/gi, '').replace('size', ''));
	holder.css('width', (parseInt(width) + GALLERY_OFFSET) + 'px');
	
	var prev = $('#previous');
	var next = $('#next');
	var location = $('#gallery_location');
	var length = $('#gallery_holder .gallery_entry').size()
	var parent = $('.gallery_entry:first').parent();
	
	prev.css('cursor', 'pointer');
	next.css('cursor', 'pointer');
	
	var id = parseInt(document.location.hash.toString().substring(1).replace('/', ''));
	To(id, false, 0); // firefox & co.
	
	$(window).load(function(){
		computeSize();
		To(id, false, 0);
		
		setTimeout(function(){
			computeSize();
			To(id, false, 0);
		}, 200);
		
	});

	
	var index = 0;
	$('#gallery_holder .gallery_entry').each(function(){
		$(this).attr('index', index);
		index++;
	});
	
	$('#gallery_holder .gallery_entry').css('cursor', 'pointer').click(function(){
		var index = $(this).attr('index');
		setHash(index);
	});
	
	next.click(function(e) {
		e.preventDefault();
		setHash(id + 1);
	});
	prev.click(function(e) {
		e.preventDefault();
		setHash(id - 1);
	});
	
	
	function recheckHash() {
		if(storeHash != document.location.hash.toString()) To(parseInt(document.location.hash.toString().substring(1).replace('/', '')), false);
		storeHash = document.location.hash.toString();
	}
	
	function resetInterval() {
		if(hashChangeInterval != null) window.clearInterval(hashChangeInterval);
		setTimeout(function(){
			hashChangeInterval = window.setInterval(recheckHash, 200);
		}, SPEED * 1);
	}
	
	// hash change
	var storeHash = document.location.hash.toString();
	resetInterval();
}




//building associative array from string (e.g.  width:100)
function splitParams(str) {
	var paramsArray = str.split(';');
	var parameters = [];
	var accessor;
	var value;
	
	for (var i = 0; i < paramsArray.length; i++) {
		accessor = paramsArray[i].substr(0, paramsArray[i].indexOf(':'));
		value = paramsArray[i].substring(paramsArray[i].indexOf(':') + 1);
		parameters[trim(accessor)] = trim(value);
	}
	
	return parameters;
}







// VIDEO HANDLING

var videoParams = new Array();
var videos = new Array();

function setVideos(targetID) {
	if($('.video_container').size() == 0) return;
	
	if (targetID == null) targetID = 0;
	
	if (targetID <= $('.video_container').size() - 1) {
		
		var targetVideo = $('.video_container:eq(' + targetID + ')')
		// NOTE
		//targetVideo.fadeTo(0, .001);
		var id = targetVideo.attr('id').toString().replace(/_/gi, '').replace('videoid', '');
		var target = targetVideo.children('.holder:first');
		target.attr('id', 'video_holder_' + id);
		
		var queryString =
		  'action=get_video' +
		  '&id=' + id;
		
		$.ajax({
			url: BASE_PATH + 'backend/action.php',
			type: "GET",
			data: queryString,
			success: function(data) {
				
				params = splitParams($(data).html().toString());
				params['type'] = GET('size');
				videoParams.push(params);
				videos.push(target.attr('id'));
				
				var id = target.attr('id').toString().replace(/_/gi, '').replace('videoholder', '');
				
				var flashvars = {};
					flashvars.ID = id;
					flashvars.Path = params['path']
					flashvars.AutoPlay = 'false';
					flashvars.allowfullscreen = "true";
					
				var params = {};
					params.allowfullscreen = "true";
					params.wmode = "transparent";
					params.allowscriptaccess = 'always';
					
				var attributes = {};
					attributes.id = target.attr('id');
					attributes.name = target.attr('id');
				
				// not needed for kaltura player
				//swfobject.embedSWF(BASE_PATH + 'media/player.swf?t=' + TIME, target.attr('id'), '100%', '100%', '9.0.115', BASE_PATH + 'media/expressInstall.swf', flashvars, params, attributes);
				updateVideoControls();
				
				setVideos(targetID + 1);
			}
		});
	}
}

var firstVideoControlSetup = true;
var actualParams = new Array();

function updateVideoControls() {
	function setPath(id) {
		// not needed for kaltura player
		//document.getElementById(videos[VideoID]).setPath(actualParams[id]);
	}
	
	function setSize(type) {
		SET('size', type);
		// update location / highres
		//$('#pid_' + VideoID).embedPlayers({}, function(){trace("update");});
	}
	
	if (videoParams.length == 0) return;
	
	VideoID = parseInt(VideoID);
	if(VideoID > (videoParams.length - 1)) return;
	
	var params = videoParams[VideoID];
	if(params == undefined) return;
	
	actualParams = params;
	
	setTimeout(function(){
		$('#project_subtitle').html(params['title']);
		refreshCufon();
		//setCufonFonts('#project_subtitle');
	}, SPEED);
	
	if (params['downloadable'] == 'true') {
		var downLink = trim(params['downloadlink']);
		if ((downLink == '') || (downLink == 'undefined')) downLink = params['path'];
		$('#button_download').attr('href', downLink);
		$('#button_download').fadeIn(SPEED / 2, EASING);
	} else {
		$('#button_download').attr('href', '#download');
		$('#button_download').fadeOut(SPEED / 2, EASING);
	}
	
	if (params['type'] == VIDEO_LARGE) {
		$('#button_large').addClass('icon_active').removeClass(MAIN_FG_COLOR);
		$('#button_small').removeClass('icon_active').addClass(MAIN_FG_COLOR);
	} else {
		$('#button_large').removeClass('icon_active').addClass(MAIN_FG_COLOR);
		$('#button_small').addClass('icon_active').removeClass(MAIN_FG_COLOR);
	}
	
	if (params['pathHighRes'] == '') {
		$('#button_large').prev().hide(SPEED / 2, EASING);
		$('#button_large').hide();
	} else {
		$('#button_large').prev().show(SPEED / 2, EASING);
		$('#button_large').show();
	}
	
	
	if(firstVideoControlSetup == true) {
		$('#button_fullscreen').attr('leave', 'true');
		$('#button_fullscreen').click(function(e){
			e.preventDefault();
			document.getElementById(videos[VideoID]).setFullscreen();
		});
		
		// High Res Video
		$('#button_large').attr('leave', 'true');
		$('#button_large').click(function(e) {
			e.preventDefault();
			//setPath('pathHighRes');
			setSize(VIDEO_LARGE);
			
			$('#button_large').addClass('icon_active').removeClass(MAIN_FG_COLOR);
			$('#button_small').removeClass('icon_active').addClass(MAIN_FG_COLOR);
			videoParams[VideoID]['type'] = "large";
		});
		
		// Low Res Video
		$('#button_small').attr('leave', 'true');
		$('#button_small').click(function(e) {
			e.preventDefault();
			setPath('path');
			setSize(VIDEO_SMALL);
			
			$('#button_large').removeClass('icon_active').addClass(MAIN_FG_COLOR);
			$('#button_small').addClass('icon_active').removeClass(MAIN_FG_COLOR);
			videoParams[VideoID]['type'] = "small";
		});
	}
	
	firstVideoControlSetup = false;
}


// swf callback
function onMetaData(videoID, width, height) {
	width = parseFloat(width);
	height = parseFloat(height);
	
	var container = $('#gallery_container');
	var video = $('#video_id_' + videoID);
	
	var containerWidth = parseFloat(container.css('width').toString().replace('px', ''));
	var actualWidth = parseFloat(video.css('width').toString().replace('px', ''));
	var actualHeight = parseFloat(video.css('height').toString().replace('px', ''));
	
	var ratio = actualHeight / height;
	width = width * ratio;
	
	var difference = parseFloat(actualWidth - width);
	
	video.css('width', width + 'px');
	container.css('width', parseFloat(containerWidth - difference) + 'px');
	
	// NOTE
	//video.fadeTo(1, SPEED, EASING);
}







	
// FORM HANDLING

function clearForm(form) {
	form.find('input').each(function(){
		this.value = this.defaultValue;
	});
}

function buildForwardForm() {

	if($("a[href^='#forward']").size() > 0) {
		
		
		function Validate(items) {
			var valid = true;
			
			items.each(function(){
				
				var value = $(this).val();
				
				if ((value == this.defaultValue) || (value == '')) {
					valid = false;
					$(this).addClass('error');
				} else {
					$(this).removeClass('error');
				}
			});
			
			return valid;
		}
		
		// ACTION - FORWARD / BASKET
		var action = 'get_forward_form';
		var action_submit = 'submit_forward_form';
		
		if($('#forward_basket').size() > 0) {
			action = 'get_forward_basket_form';
			action_submit = 'submit_forward_basket_form';
		}
		
		var forwardForm;
		var isOpen = false;
		var height = 730;
		var title = $('#project_title').html();
		var subtitle =  $('#project_subtitle').html();
		
		var queryString = "action=" + action +
			"&lang=" + urlGet('lang') +
			"&title=" + title +
			"&subtitle=" + subtitle;
		
		$.ajax({
			url: BASE_PATH + 'backend/action.php',
			type: "GET",
			data: queryString,
			success: function(data) {
				
				forwardForm = $(data);
				$('body').append(forwardForm);
				
				setFormInputs($(this).attr('id'));
				setCufonFonts();
				
				forwardForm.children('.success:first').fadeOut(0);
				forwardForm.find('#forward_form_cancel').click(function(e) {
					e.preventDefault();
					isOpen = false;
					forwardForm.animate({'top': '-' + height + 'px'}, SPEED, EASING);
				});
				
				forwardForm.find('#forward_form_submit').click(function(e) {
					e.preventDefault();
					
					if (Validate($('#forward_name, #forward_mail, #forward_receiver, #forward_message, #forward_title')) == false) return false;
					
					var targetRadioButton = null;
					$('.radio_html').each(function(){
						if($(this).attr('checked')) targetRadioButton = $(this);
					});
					
					queryString = "action=" + action_submit + "&lang=" + urlGet('lang');
					queryString += "&name=" + $('#forward_name').val();
					queryString += "&mail=" + $('#forward_mail').val();
					queryString += "&receiver=" + $('#forward_receiver').val().toString().replace(/\n/gi, ',');
					queryString += "&subject=" + $('#forward_subject').val();
					queryString += "&message=" + $('#forward_message').val().toString().replace(/\n/gi, '<br>');;
					
					queryString += "&title=" + title;
					queryString += "&subtitle=" + subtitle;
					
					if($('#forward_title').size() > 0) queryString += "&title=" + $('#forward_title').val();
					if(targetRadioButton != null) queryString += "&html=" + targetRadioButton.val();
					
					var CurrentLocation = document.location.toString();
					if (CurrentLocation.indexOf('#') > 0) CurrentLocation = CurrentLocation.substring(0, CurrentLocation.lastIndexOf('#'));
					
					queryString += "&url=" + CurrentLocation;
					queryString += "&hash=" + document.location.hash.toString().substring(1);
					
					$.ajax({
						url: BASE_PATH + 'backend/action.php',
						type: "GET",
						data: queryString,
						success: function(data) {
							isOpen = false;
							forwardForm.children('.success:first').fadeIn(SPEED, EASING).delay(SPEED * 3.5).fadeOut(0, function(){clearForm(forwardForm);});
							forwardForm.delay(SPEED * 2.5).animate({'top': '-' + height + 'px'}, SPEED, EASING);
						}
					});
					
				});
				
				if(isOpen) forwardForm.css('top', '0px');
				else forwardForm.css('top', '-' + height + 'px');
			}
		});
		
		$("a[href^='#forward']").click(function(e) {
			e.preventDefault();
			isOpen = !isOpen;
			if (forwardForm.css('top') == '0px') forwardForm.animate({'top': '-' + height + 'px'}, SPEED, EASING);
			else {
				forwardForm.removeClass('hidden').animate({'top': '0px'}, SPEED, EASING);
				scrollBodyTo(forwardForm);
			}
		});
		
	}
}


// AUTO CLEAR FORM ON FOCUS
function setFormInputs(Target) {
	if(Target == null) Target = '';
	
	$(Target + ' input[type="text"].clear, ' + Target + ' textarea.clear').focus(function() {
		if (this.value == this.defaultValue){
			this.value = '';
		}
		if(this.value != this.defaultValue){
			this.select();
		}
	}).blur(function(){
		if (this.value == '')
			this.value = this.defaultValue;
	});
}






function setBasketHandling() {
	
	$('.button_basket').mouseover(function(){
		if($(this).hasClass('added')) {
			$(this).removeClass('added').addClass('remove');
		} else if ($(this).hasClass('remove')) {
			$(this).attr('keep', 'true');
		}
	}).mouseout(function(){
		if($(this).hasClass('remove') && $(this).attr('keep') != 'true') {
			$(this).removeClass('remove').addClass('added');
		}
	}).click(function(){
		$(this).attr('keep', 'false');
		
		var target = $(this);
		var action = 'add_to_basket';
		
		if (target.hasClass('add')) action = 'add_to_basket';
		else action = 'remove_from_basket';
		
		var id = $(this).attr('id').toString().replace(/_/gi, '').replace('projectid', '');
		
		var queryString =
		  'action=' + action +
			'&lang=' + urlGet('lang') +
		  '&id=' + id;
		
		$.ajax({
			url: BASE_PATH + 'backend/action.php',
			type: "GET",
			data: queryString,
			success: function(data) {
				// report basket
				var params = splitParams($(data).html());
				
				if(target.hasClass('add')) {
					// ADDED
					target.removeClass('add').addClass('added');
					target.html(params['added_to_basket']);
				} else {
					// REMOVED
					target.removeClass('added').removeClass('remove').addClass('add');
					target.html(params['add_to_basket']);
				}
				
				
			}
		});
		
	});
}





$(document).ready(function() {
	setMainBGColor();
	setCufonFonts();
	setAjaxList();
	collapseList();
	setSelectBoxes();
	setClientSelectList();
	setGallerySlider();
	setDetailOverlays();
	buildForwardForm();
	setFormInputs();
	setBasketHandling();
	setScrollableAnchors();
	setVideos();
	
	$('.home-slideshow').innerfade({
		animationtype: 'fade',
		speed: 750,
		timeout: 5000,
		type: 'sequence',
		containerheight: '325px'
	});
});

$(window).load(function(){
	setCufonFonts();
});



VideoJS.setupAllWhenReady();

