// init page
jQuery(function() {
	VSA_initScrollbars();
	hideFormText();
	initImageMaps();
	initCustomForms();
	$(".peKenBurns").peKenburnsSlider();
	initPopups();
});

jQuery(window).load(function() {
	initOpenClose();
});

var exitLink = undefined;
function setExitLink(value) {
	exitLink = value;
}
function getExitLink() {
	return exitLink;
}

// initOpenClose
function initOpenClose() {
	jQuery('.open-close-box').each(function() {
		var holder = jQuery(this),
			opener = jQuery('.opener', this),
			openBox = jQuery('.open-box', this),
			closeBtn = jQuery('.btn-close', openBox),
			activeClass = 'opened',
			animated = false;
		
		openBox.css({
			left: 0,
			top: 0,
			display: 'none'
		})
		
		opener.click(function() {
			if(!animated) {
				animated = true;
				if(openBox.is(':hidden')) {
					openBox.slideDown(function() {
						animated = false;
					});
				}
				else {
					openBox.slideUp(function() {
						animated = false;
					});
				}
			}
			
			return false;
		});
		
		closeBtn.click(function() {
			if(!animated) {
				animated = true;
				openBox.slideUp(function() {
					animated = false;
				});
			}
			return false;
		});
	});
}

// hideFormText
function hideFormText() {
	var _inputs = document.getElementsByTagName('input');
	var _txt = document.getElementsByTagName('textarea');
	var _value = [];
	
	if (_inputs) {
		for(var i=0; i<_inputs.length; i++) {
			if (_inputs[i].type == 'text' || _inputs[i].type == 'password') {
				
				_inputs[i].index = i;
				_value[i] = _inputs[i].value;
				
				_inputs[i].onfocus = function(){
					if (this.value == _value[this.index])
						this.value = '';
				}
				_inputs[i].onblur = function(){
					if (this.value == '')
						this.value = _value[this.index];
				}
			}
		}
	}
	if (_txt) {
		for(var i=0; i<_txt.length; i++) {
			_txt[i].index = i;
			_value['txt'+i] = _txt[i].value;
			
			_txt[i].onfocus = function(){
				if (this.value == _value['txt'+this.index])
					this.value = '';
			}
			_txt[i].onblur = function(){
				if (this.value == '')
					this.value = _value['txt'+this.index];
			}
		}
	}
}

// create imagemaps
function initImageMaps() {
	var imageList = document.getElementsByTagName('img');
	for(var i = 0; i < imageList.length; i++) {
		if(imageList[i].getAttribute('usemap')) {
			new ImageMap({
				image: imageList[i]
			})
		}
	}
	
	jQuery('.map-items a').each(function() {
		var btn = jQuery(this),
			area = jQuery('area[alt="' + this.hash.replace('#', '') + '"]');
		
		btn.mouseenter(function() {
			jQuery(this.hash).addClass('activestate');
		}).mouseleave(function() {
			jQuery(this.hash).removeClass('activestate');
		});
		
		area.mouseenter(function() {
			btn.addClass('hover');
		}).mouseleave(function() {
			btn.removeClass('hover');
		});
	});
}

// image map module
function ImageMap(opt) {
	this.options = {
		delay: 50,
		image: null,
		hoverClass:'activestate'
	}
	for(var p in opt) {
		if(opt.hasOwnProperty(p)) {
			this.options[p] = opt[p];
		}
	}
	this.init();
}
ImageMap.prototype = {
	init: function() {
		if(typeof this.options.image === 'object') {
			this.getElements();
			this.addHandlers();
		}
	},
	getElements: function() {
		this.mapId = this.options.image.getAttribute('usemap');
		this.mapId = this.mapId.substring(1);
		this.map = document.getElementById(this.mapId);
		if(this.map) {
			this.areas = this.map.getElementsByTagName('area');
		}
	},
	addHandlers: function() {
		if(this.areas) {
			for(var i = 0; i < this.areas.length; i++) {
				(function(inst){
					var timer;
					var area = inst.areas[i];
					var node = document.getElementById(inst.areas[i].alt);
					if(node) {
						area.onmouseover = function() {
							clearTimeout(timer);
							timer = setTimeout(function(){
								inst.addClass(node, inst.options.hoverClass);
							},inst.options.delay)
						}
						area.onmouseout = function() {
							clearTimeout(timer);
							timer = setTimeout(function(){
								inst.removeClass(node, inst.options.hoverClass);
							},inst.options.delay)
						}
						node.onmouseover = function() {
							clearTimeout(timer);
						}
						node.onmouseout = function() {
							clearTimeout(timer);
							timer = setTimeout(function(){
								inst.removeClass(node, inst.options.hoverClass);
							},inst.options.delay)
						}
					}
				})(this);
			}
		}
	},
	hasClass: function(el,cls) {
		return el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
	},
	addClass: function(el,cls) {
		if (!this.hasClass(el,cls)) el.className += " "+cls;
	},
	removeClass: function(el,cls) {
		if (this.hasClass(el,cls)) {el.className=el.className.replace(new RegExp('(\\s|^)'+cls+'(\\s|$)'),' ');}
	}
}

// custom forms script
var maxVisibleOptions = 20;
var all_selects = false;
var active_select = null;
var selectText = "please select";

function initCustomForms() {
	getElements();
	separateElements();
	replaceRadios();
	//replaceCheckboxes();
	//replaceSelects();

	// hide drop when scrolling or resizing window
	if (window.addEventListener) {
		window.addEventListener("scroll", hideActiveSelectDrop, false);
		window.addEventListener("resize", hideActiveSelectDrop, false);
	}
	else if (window.attachEvent) {
		window.attachEvent("onscroll", hideActiveSelectDrop);
		window.attachEvent("onresize", hideActiveSelectDrop);
	}
}

function refreshCustomForms() {
	// remove prevously created elements
	if(window.inputs) {
		for(var i = 0; i < checkboxes.length; i++) {
			if(checkboxes[i].checked) {checkboxes[i]._ca.className = "checkboxAreaChecked";}
			else {checkboxes[i]._ca.className = "checkboxArea";}
		}
		for(var i = 0; i < radios.length; i++) {
			if(radios[i].checked) {radios[i]._ra.className = "radioAreaChecked";}
			else {radios[i]._ra.className = "radioArea";}
		}
		for(var i = 0; i < selects.length; i++) {
			var newText = document.createElement('div');
			if (selects[i].options[selects[i].selectedIndex].title.indexOf('image') != -1) {
				newText.innerHTML = '<img src="'+selects[i].options[selects[i].selectedIndex].title+'" alt="" />';
				newText.innerHTML += '<span>'+selects[i].options[selects[i].selectedIndex].text+'</span>';
			} else {
				newText.innerHTML = selects[i].options[selects[i].selectedIndex].text;
			}
			document.getElementById("mySelectText"+i).innerHTML = newText.innerHTML;
		}
	}
}

// getting all the required elements
function getElements() {
	// remove prevously created elements
	if(window.inputs) {
		for(var i = 0; i < inputs.length; i++) {
			inputs[i].className = inputs[i].className.replace('outtaHere','');
			if(inputs[i]._ca) inputs[i]._ca.parentNode.removeChild(inputs[i]._ca);
			else if(inputs[i]._ra) inputs[i]._ra.parentNode.removeChild(inputs[i]._ra);
		}
		for(i = 0; i < selects.length; i++) {
			selects[i].replaced = null;
			selects[i].className = selects[i].className.replace('outtaHere','');
			selects[i]._optionsDiv._parent.parentNode.removeChild(selects[i]._optionsDiv._parent);
			selects[i]._optionsDiv.parentNode.removeChild(selects[i]._optionsDiv);
		}
	}

	// reset state
	inputs = new Array();
	selects = new Array();
	labels = new Array();
	radios = new Array();
	radioLabels = new Array();
	checkboxes = new Array();
	checkboxLabels = new Array();
	for (var nf = 0; nf < document.getElementsByTagName("form").length; nf++) {
		if(document.forms[nf].className.indexOf("default") < 0) {
			for(var nfi = 0; nfi < document.forms[nf].getElementsByTagName("input").length; nfi++) {inputs.push(document.forms[nf].getElementsByTagName("input")[nfi]);}
			for(var nfl = 0; nfl < document.forms[nf].getElementsByTagName("label").length; nfl++) {labels.push(document.forms[nf].getElementsByTagName("label")[nfl]);}
			for(var nfs = 0; nfs < document.forms[nf].getElementsByTagName("select").length; nfs++) {selects.push(document.forms[nf].getElementsByTagName("select")[nfs]);}
		}
	}
}

// separating all the elements in their respective arrays
function separateElements() {
	var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0;
	for (var q = 0; q < inputs.length; q++) {
		if(inputs[q].type == "radio") {
			radios[r] = inputs[q]; ++r;
			for(var w = 0; w < labels.length; w++) {
				if((inputs[q].id) && labels[w].htmlFor == inputs[q].id)
				{
					radioLabels[rl] = labels[w];
					++rl;
				}
			}
		}
		if(inputs[q].type == "checkbox") {
			checkboxes[c] = inputs[q]; ++c;
			for(var w = 0; w < labels.length; w++) {
				if((inputs[q].id) && (labels[w].htmlFor == inputs[q].id))
				{
					checkboxLabels[cl] = labels[w];
					++cl;
				}
			}
		}
	}
}

//replacing radio buttons
function replaceRadios() {
	for (var q = 0; q < radios.length; q++) {
		radios[q].className += " outtaHere";
		var radioArea = document.createElement("div");
		if(radios[q].checked) {
			radioArea.className = "radioAreaChecked";
		}
		else
		{
			radioArea.className = "radioArea";
		}
		radioArea.id = "myRadio" + q;
		radios[q].parentNode.insertBefore(radioArea, radios[q]);
		radios[q]._ra = radioArea;

		radioArea.onclick = new Function('rechangeRadios('+q+')');
		if (radioLabels[q]) {
			if(radios[q].checked) {
				radioLabels[q].className += "radioAreaCheckedLabel";
			}
			radioLabels[q].onclick = new Function('rechangeRadios('+q+')');
		}
	}
	return true;
}

//checking radios
function checkRadios(who) {
	var what = radios[who]._ra;
	for(var q = 0; q < radios.length; q++) {
		if((radios[q]._ra.className == "radioAreaChecked") && (radios[q]._ra.nextSibling.name == radios[who].name))
		{
			radios[q]._ra.className = "radioArea";
		}
	}
	what.className = "radioAreaChecked";
}

//changing radios
function changeRadios(who) {
	if(radios[who].checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radios[who].name) {
				radios[q].checked = false;
			} 
			radios[who].checked = true; 
			checkRadios(who);
		}
	}
}

//rechanging radios
function rechangeRadios(who) {
	if(!radios[who].checked) {
		for(var q = 0; q < radios.length; q++) {
			if(radios[q].name == radios[who].name) {
				radios[q].checked = false; 
				if(radioLabels[q]) radioLabels[q].className = radioLabels[q].className.replace("radioAreaCheckedLabel","");
			}
		}
		radios[who].checked = true; 
		if(radioLabels[who] && radioLabels[who].className.indexOf("radioAreaCheckedLabel") < 0) {
			radioLabels[who].className += " radioAreaCheckedLabel";
		}
		checkRadios(who);
		
		if(window.$ && window.$.fn) {
			$(radios[who]).trigger('change');
		}
	}
}

//replacing checkboxes
function replaceCheckboxes() {
	for (var q = 0; q < checkboxes.length; q++) {
		checkboxes[q].className += " outtaHere";
		var checkboxArea = document.createElement("div");
		if(checkboxes[q].checked) {
			checkboxArea.className = "checkboxAreaChecked";
			if(checkboxLabels[q]) {
				checkboxLabels[q].className += " checkboxAreaCheckedLabel"
			}
		}
		else {
			checkboxArea.className = "checkboxArea";
		}
		checkboxArea.id = "myCheckbox" + q;
		checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]);
		checkboxes[q]._ca = checkboxArea;
		checkboxArea.onclick = new Function('rechangeCheckboxes('+q+')');
		if (checkboxLabels[q]) {
			checkboxLabels[q].onclick = new Function('changeCheckboxes('+q+')');
		}
		checkboxes[q].onkeydown = checkEvent;
	}
	return true;
}

//checking checkboxes
function checkCheckboxes(who, action) {
	var what = checkboxes[who]._ca;
	if(action == true) {
		what.className = "checkboxAreaChecked";
		what.checked = true;
	}
	if(action == false) {
		what.className = "checkboxArea";
		what.checked = false;
	}
	if(checkboxLabels[who]) {
		if(checkboxes[who].checked) {
			if(checkboxLabels[who].className.indexOf("checkboxAreaCheckedLabel") < 0) {
				checkboxLabels[who].className += " checkboxAreaCheckedLabel";
			}
		} else {
			checkboxLabels[who].className = checkboxLabels[who].className.replace("checkboxAreaCheckedLabel", "");
		}
	}
	
}

//changing checkboxes
function changeCheckboxes(who) {
	setTimeout(function(){
		if(checkboxes[who].checked) {
			checkCheckboxes(who, true);
		} else {
			checkCheckboxes(who, false);
		}
	},10);
}

// rechanging checkboxes
function rechangeCheckboxes(who) {
	var tester = false;
	if(checkboxes[who].checked == true) {
		tester = false;
	}
	else {
		tester = true;
	}
	checkboxes[who].checked = tester;
	checkCheckboxes(who, tester);
	if(window.$ && window.$.fn) {
		$(checkboxes[who]).trigger('change');
	}
}

// check event
function checkEvent(e) {
	if (!e) var e = window.event;
	if(e.keyCode == 32) {for (var q = 0; q < checkboxes.length; q++) {if(this == checkboxes[q]) {changeCheckboxes(q);}}} //check if space is pressed
}

// replace selects
function replaceSelects() {
	for(var q = 0; q < selects.length; q++) {
		if (!selects[q].replaced && selects[q].offsetWidth) {
			selects[q]._number = q;
			//create and build div structure
			var selectArea = document.createElement("div");
			var left = document.createElement("span");
			left.className = "left";
			selectArea.appendChild(left);

			var disabled = document.createElement("span");
			disabled.className = "disabled";
			selectArea.appendChild(disabled);

			selects[q]._disabled = disabled;
			var center = document.createElement("span");
			var button = document.createElement("a");
			var text = document.createTextNode(selectText);
			center.id = "mySelectText"+q;

			var stWidth = selects[q].offsetWidth;
			selectArea.style.width = stWidth + "px";
			if (selects[q].parentNode.className.indexOf("type2") != -1){
				button.href = "javascript:showOptions("+q+",true)";
			} else {
				button.href = "javascript:showOptions("+q+",false)";
			}
			button.className = "selectButton";
			selectArea.className = "selectArea";
			selectArea.className += " " + selects[q].className;
			selectArea.id = "sarea"+q;
			center.className = "center";
			center.appendChild(text);
			selectArea.appendChild(center);
			selectArea.appendChild(button);

			//insert select div
			selects[q].parentNode.insertBefore(selectArea, selects[q]);
			//build & place options div

			var optionsDiv = document.createElement("div");
			var optionsList = document.createElement("ul");
			var optionsListHolder = document.createElement("div");
			
			optionsListHolder.className = "select-center";
			optionsListHolder.innerHTML =  "<div class='select-center-right'></div>";
			optionsDiv.innerHTML += "<div class='select-top'><div class='select-top-left'></div><div class='select-top-right'></div></div>";
			
			optionsListHolder.appendChild(optionsList);
			optionsDiv.appendChild(optionsListHolder);
			
			selects[q]._optionsDiv = optionsDiv;
			selects[q]._options = optionsList;

			optionsDiv.style.width = stWidth + "px";
			optionsDiv._parent = selectArea;

			optionsDiv.className = "optionsDivInvisible";
			optionsDiv.id = "optionsDiv"+q;

			if(selects[q].className.length) {
				optionsDiv.className += ' drop-'+selects[q].className;
			}

			populateSelectOptions(selects[q]);
			optionsDiv.innerHTML += "<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";
			document.body.appendChild(optionsDiv);
			selects[q].replaced = true;
			
			// too many options
			if(selects[q].options.length > maxVisibleOptions) {
				optionsDiv.className += ' optionsDivScroll';
			}
			
			//hide the select field
			if(selects[q].className.indexOf('default') != -1) {
				selectArea.style.display = 'none';
			} else {
				selects[q].className += " outtaHere";
			}
		}
	}
	all_selects = true;
}

//collecting select options
function populateSelectOptions(me) {
	me._options.innerHTML = "";
	for(var w = 0; w < me.options.length; w++) {
		var optionHolder = document.createElement('li');
		var optionLink = document.createElement('a');
		var optionTxt;
		if (me.options[w].title.indexOf('image') != -1) {
			optionTxt = document.createElement('img');
			optionSpan = document.createElement('span');
			optionTxt.src = me.options[w].title;
			optionSpan = document.createTextNode(me.options[w].text);
		} else {
			optionTxt = document.createTextNode(me.options[w].text);
		}
		
		// hidden default option
		if(me.options[w].className.indexOf('default') != -1) {
			optionHolder.style.display = 'none'
		}
		
		optionLink.href = "javascript:showOptions("+me._number+"); selectMe('"+me.id+"',"+w+","+me._number+");";
		if (me.options[w].title.indexOf('image') != -1) {
			optionLink.appendChild(optionTxt);
			optionLink.appendChild(optionSpan);
		} else {
			optionLink.appendChild(optionTxt);
		}
		optionHolder.appendChild(optionLink);
		me._options.appendChild(optionHolder);
		//check for pre-selected items
		if(me.options[w].selected) {
			selectMe(me.id,w,me._number,true);
		}
	}
	if (me.disabled) {
		me._disabled.style.display = "block";
	} else {
		me._disabled.style.display = "none";
	}
}

//selecting me
function selectMe(selectFieldId,linkNo,selectNo,quiet) {
	selectField = selects[selectNo];
	for(var k = 0; k < selectField.options.length; k++) {
		if(k==linkNo) {
			selectField.options[k].selected = true;
		}
		else {
			selectField.options[k].selected = false;
		}
	}
	
	//show selected option
	textVar = document.getElementById("mySelectText"+selectNo);
	var newText;
	var optionSpan;
	if (selectField.options[linkNo].title.indexOf('image') != -1) {
		newText = document.createElement('img');
		newText.src = selectField.options[linkNo].title;
		optionSpan = document.createElement('span');
		optionSpan = document.createTextNode(selectField.options[linkNo].text);
	} else {
		newText = document.createTextNode(selectField.options[linkNo].text);
	}
	if (selectField.options[linkNo].title.indexOf('image') != -1) {
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);
		textVar.appendChild(optionSpan);
	} else {
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);
	}
	if (!quiet && all_selects) {
		if(typeof selectField.onchange === 'function') {
			selectField.onchange();
		}
		if(window.$ && window.$.fn) {
			$(selectField).trigger('change');
		}
	}
}

//showing options
function showOptions(g) {
	_elem = document.getElementById("optionsDiv"+g);
	var divArea = document.getElementById("sarea"+g);
	if (active_select && active_select != _elem) {
		active_select.className = active_select.className.replace('optionsDivVisible',' optionsDivInvisible');
		active_select.style.height = "auto";
	}
	if(_elem.className.indexOf("optionsDivInvisible") != -1) {
		_elem.style.left = "-9999px";
		_elem.style.top = findPosY(divArea) + divArea.offsetHeight + 'px';
		_elem.className = _elem.className.replace('optionsDivInvisible','');
		_elem.className += " optionsDivVisible";
		/*if (_elem.offsetHeight > 200)
		{
			_elem.style.height = "200px";
		}*/
		_elem.style.left = findPosX(divArea) + 'px';
		
		active_select = _elem;
		if(_elem._parent.className.indexOf('selectAreaActive') < 0) {
			_elem._parent.className += ' selectAreaActive';
		}
		
		if(document.documentElement) {
			document.documentElement.onclick = hideSelectOptions;
		} else {
			window.onclick = hideSelectOptions;
		}
	}
	else if(_elem.className.indexOf("optionsDivVisible") != -1) {
		hideActiveSelectDrop();
	}
	
	// for mouseout
	/*_elem.timer = false;
	_elem.onmouseover = function() {
		if (this.timer) clearTimeout(this.timer);
	}
	_elem.onmouseout = function() {
		var _this = this;
		this.timer = setTimeout(function(){
			_this.style.height = "auto";
			_this.className = _this.className.replace('optionsDivVisible','');
			if (_elem.className.indexOf('optionsDivInvisible') == -1)
				_this.className += " optionsDivInvisible";
		},200);
	}*/
}

function hideActiveSelectDrop() {
	if(active_select) {
		active_select.style.height = "auto";
		active_select.className = active_select.className.replace('optionsDivVisible', '');
		active_select.className = active_select.className.replace('optionsDivInvisible', '');
		active_select._parent.className = active_select._parent.className.replace('selectAreaActive','')
		active_select.className += " optionsDivInvisible";
		active_select = false;
	}
}

function hideSelectOptions(e) {
	if(active_select) {
		if(!e) e = window.event;
		var _target = (e.target || e.srcElement);
		if(!isElementBefore(_target,'selectArea') && !isElementBefore(_target,'optionsDiv')) {
			hideActiveSelectDrop();
			if(document.documentElement) {
				document.documentElement.onclick = function(){};
			}
			else {
				window.onclick = null;
			}
		}
	}
}

function isElementBefore(_el,_class) {
	var _parent = _el;
	do {
		_parent = _parent.parentNode;
	}
	while(_parent && _parent.className != null && _parent.className.indexOf(_class) == -1)
	return _parent.className && _parent.className.indexOf(_class) != -1;
}

function findPosY(obj) {
	if (obj.getBoundingClientRect) {
		var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
		var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
		return Math.round(obj.getBoundingClientRect().top + scrollTop - clientTop);
	} else {
		var posTop = 0;
		while (obj.offsetParent) {posTop += obj.offsetTop; obj = obj.offsetParent;}
		return posTop;
	}
}

function findPosX(obj) {
	if (obj.getBoundingClientRect) {
		var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
		var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
		return Math.round(obj.getBoundingClientRect().left + scrollLeft - clientLeft);
	} else {
		var posLeft = 0;
		while (obj.offsetParent) {posLeft += obj.offsetLeft; obj = obj.offsetParent;}
		return posLeft;
	}
}

var VSA_scrollAreas = new Array();
var VSA_default_imagesPath = "WebResources/images";
var VSA_default_btnUpImage = "button-up.gif";
var VSA_default_btnDownImage = "button-down.gif";
var VSA_default_scrollStep = 5;
var VSA_default_wheelSensitivity = 10;
var VSA_default_scrollbarPosition = 'right';//'left','right','inline';
var VSA_default_scrollButtonHeight = 22;
var VSA_default_scrollbarWidth = 22;
var VSA_resizeTimer = 2000;
var VSA_touchFlag = isTouchDevice(); // true/false - move scroll with scrollable body

function VSA_initScrollbars() {
	if(!document.body.children) return;
	var scrollElements = VSA_getElements("vscrollable", "DIV", document, "class");
	for (var i=0; i<scrollElements.length; i++)
	{
		VSA_scrollAreas[i] = new VScrollArea(i, scrollElements[i]);
	}
}

function isTouchDevice() {
	try {
		document.createEvent("TouchEvent");
		return true;
	} catch (e) {
		return false;
	}
}

function touchHandler(event) {
	var touches = event.changedTouches, first = touches[0], type = "";
	switch(event.type) {
		case "touchstart": type = "mousedown"; break;
		case "touchmove":  type = "mousemove"; break;
		case "touchend":   type = "mouseup"; break;
		default: return;
	}
	var simulatedEvent = document.createEvent("MouseEvent");
	simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);
	first.target.dispatchEvent(simulatedEvent);
	event.preventDefault();
}

function VScrollArea(index, elem) //constructor
{
	this.index = index;
	this.element = elem;

	var attr = this.element.getAttribute("imagesPath");
	this.imagesPath = attr ? attr : VSA_default_imagesPath;

	attr = this.element.getAttribute("btnUpImage");
	this.btnUpImage = attr ? attr : VSA_default_btnUpImage;

	attr = this.element.getAttribute("btnDownImage");
	this.btnDownImage = attr ? attr : VSA_default_btnDownImage;

	attr = Number(this.element.getAttribute("scrollStep"));
	this.scrollStep = attr ? attr : VSA_default_scrollStep;

	attr = Number(this.element.getAttribute("wheelSensitivity"));
	this.wheelSensitivity = attr ? attr : VSA_default_wheelSensitivity;

	attr = this.element.getAttribute("scrollbarPosition");
	this.scrollbarPosition = attr ? attr : VSA_default_scrollbarPosition;
	
	attr = this.element.getAttribute("scrollButtonHeight");
	this.scrollButtonHeight = attr ? attr : VSA_default_scrollButtonHeight;

	attr = this.element.getAttribute("scrollbarWidth");
	this.scrollbarWidth = attr ? attr : VSA_default_scrollbarWidth;

	this.scrolling = false;

	this.iOffsetY = 0;
	this.scrollHeight = 0;
	this.scrollContent = null;
	this.scrollbar = null;
	this.scrollup = null;
	this.scrolldown = null;
	this.scrollslider = null;
	this.scroll = null;
	this.enableScrollbar = false;
	this.scrollFactor = 1;
	this.scrollingLimit = 0;
	this.topPosition = 0;

	//functions declaration
	this.init = VSA_init;
	this.scrollUp = VSA_scrollUp;
	this.scrollDown = VSA_scrollDown;
	this.createScrollBar = VSA_createScrollBar;
	this.scrollIt = VSA_scrollIt;

	this.init();
}

function VSA_init() {
	this.scrollContent = document.createElement("DIV");
	this.scrollContent.style.position = "absolute";
	this.scrollContent.style.overflow = "hidden";
	this.scrollContent.style.width = this.element.offsetWidth + "px";
	this.scrollContent.style.height = this.element.offsetHeight + "px";

	while(this.element.childNodes.length) this.scrollContent.appendChild(this.element.childNodes[0]);

	this.element.style.overflow = "hidden";
	this.element.style.display = "block";
	this.element.style.visibility = "visible";
	this.element.style.position = "relative";
	this.element.appendChild(this.scrollContent);

	this.scrollContent.className = 'scroll-content';

	this.element.index = this.index;
	this.element.over = false;
	
	var _this = this;

	if(document.all && !window.opera) {
		this.element.onmouseenter = function(){_this.element.over = true;};
		this.element.onmouseleave = function(){_this.element.over = false;}
	} else {
		this.element.onmouseover = function(){_this.element.over = true;};
		this.element.onmouseout = function(){_this.element.over = false;}
	}

	if (document.all)
	{
		this.element.onscroll = VSA_handleOnScroll;
		this.element.onresize = VSA_handleResize;
	}
	else
	{
		window.onresize = VSA_handleResize;
	}
	
	this.createScrollBar();
	
	if (window.addEventListener) {
		/* DOMMouseScroll is for mozilla. */
		this.element.addEventListener('DOMMouseScroll', VSA_handleMouseWheel, false);
	}
	/* IE/Opera. */
	this.element.onmousewheel = document.onmousewheel = VSA_handleMouseWheel;

	// move content by touch
	if(VSA_touchFlag) {
		_this.scrollContent.onmousedown = function(e) {
			var startY = e.pageY-getRealTop(_this.scrollContent);
			var origTop = _this.scrollContent.scrollTop;
			_this.scrollContent.onmousemove = function(e) {
				var moveY = e.pageY-getRealTop(_this.scrollContent);
				var iNewY = origTop-(moveY-startY);
				if(iNewY < 0) iNewY = 0;
				if(iNewY > _this.scrollContent.scrollHeight) iNewY = _this.scrollContent.scrollHeight;
				_this.scrollContent.scrollTop = iNewY;
				_this.scrollslider.style.top =  1 / _this.scrollFactor * Math.abs(_this.scrollContent.scrollTop) + _this.scrollButtonHeight + "px";
			}
		}
		_this.scrollContent.onmouseup = function(e) {
			_this.scrollContent.onmousemove = null;
		}
		this.scrollContent.addEventListener("touchstart", touchHandler, true);
		this.scrollContent.addEventListener("touchmove", touchHandler, true);
		this.scrollContent.addEventListener("touchend", touchHandler, true);
	}
}

function VSA_createScrollBar()
{
	if (this.scrollbar != null)
	{
		this.element.removeChild(this.scrollbar);
		this.scrollbar = null;
	}
	
	if (this.scrollContent.scrollHeight <= this.scrollContent.offsetHeight)
		this.enableScrollbar = false;
	else if (this.element.offsetHeight > 2*this.scrollButtonHeight)
		this.enableScrollbar = true;
	else
		this.enableScrollbar = false;

	if (this.scrollContent.scrollHeight - Math.abs(this.scrollContent.scrollTop) < this.element.offsetHeight)
		this.scrollContent.style.top = 0;

	if (this.enableScrollbar)
	{
		this.scrollbar = document.createElement("DIV");
		this.element.appendChild(this.scrollbar);
		this.scrollbar.style.position = "absolute";
		this.scrollbar.style.top = "0px";
		this.scrollbar.style.height = this.element.offsetHeight+"px";
		this.scrollbar.style.width = this.scrollbarWidth + "px";

		this.scrollbar.className = 'vscroll-bar';

		if(this.scrollbarWidth != this.scrollbar.offsetWidth)
		{
			this.scrollbarWidth = this.scrollbar.offsetHeight;
		}
		
		this.scrollbarWidth = this.scrollbar.offsetWidth;

		if(this.scrollbarPosition == 'left')
		{
			this.scrollContent.style.left = this.scrollbarWidth + 5 + "px";
			this.scrollContent.style.width = this.element.offsetWidth - this.scrollbarWidth - 5 + "px";
		}
		else if(this.scrollbarPosition == 'right')
		{
			this.scrollbar.style.left = this.element.offsetWidth - this.scrollbarWidth  + "px";
			this.scrollContent.style.width = this.element.offsetWidth - this.scrollbarWidth - 5 + "px";
		}

		//create scroll up button
		this.scrollup = document.createElement("DIV");
		this.scrollup.index = this.index;
		this.scrollup.onmousedown = VSA_handleBtnUpMouseDown;
		this.scrollup.onmouseup = VSA_handleBtnUpMouseUp;
		this.scrollup.onmouseout = VSA_handleBtnUpMouseOut;
		
		if(VSA_touchFlag) {
			this.scrollup.addEventListener("touchstart", touchHandler, true);
			this.scrollup.addEventListener("touchend", touchHandler, true);
		}
		
		this.scrollup.style.position = "absolute";
		this.scrollup.style.top = "0px";
		this.scrollup.style.left = "0px";
		this.scrollup.style.height = this.scrollButtonHeight + "px";
		this.scrollup.style.width = this.scrollbarWidth + "px";
		
		this.scrollup.innerHTML = '<img src="' + this.imagesPath + '/' + this.btnUpImage + '" border="0"/>';
		this.scrollbar.appendChild(this.scrollup);

		this.scrollup.className = 'vscroll-up';

		if(this.scrollButtonHeight != this.scrollup.offsetHeight)
		{
			this.scrollButtonHeight = this.scrollup.offsetHeight;
		}
		
		//create scroll down button
		this.scrolldown = document.createElement("DIV");
		this.scrolldown.index = this.index;
		this.scrolldown.onmousedown = VSA_handleBtnDownMouseDown;
		this.scrolldown.onmouseup = VSA_handleBtnDownMouseUp;
		this.scrolldown.onmouseout = VSA_handleBtnDownMouseOut;
		
		if(VSA_touchFlag) {
			this.scrolldown.addEventListener("touchstart", touchHandler, true);
			this.scrolldown.addEventListener("touchend", touchHandler, true);
		}
		
		this.scrolldown.style.position = "absolute";
		this.scrolldown.style.left = "0px";
		this.scrolldown.style.top =  this.scrollbar.offsetHeight - this.scrollButtonHeight + "px";
		this.scrolldown.style.width = this.scrollbarWidth + "px";
		this.scrolldown.innerHTML = '<img src="' + this.imagesPath + '/' + this.btnDownImage + '" border="0"/>';
		this.scrollbar.appendChild(this.scrolldown);

		this.scrolldown.className = 'vscroll-down';

		//create scroll
		this.scroll = document.createElement("DIV");
		this.scroll.index = this.index;
		this.scroll.style.position = "absolute";
		this.scroll.style.zIndex = 0;
		this.scroll.style.textAlign = "center";
		this.scroll.style.top = this.scrollButtonHeight + "px";
		this.scroll.style.left = "0px";
		this.scroll.style.width = this.scrollbarWidth + "px";
		
		var h = this.scrollbar.offsetHeight - 2*this.scrollButtonHeight;
		this.scroll.style.height = ((h > 0) ? h : 0) + "px";
		
		this.scroll.innerHTML = '';
		this.scroll.onclick = VSA_handleScrollbarClick;
		this.scrollbar.appendChild(this.scroll);
		this.scroll.style.overflow = "hidden";

		this.scroll.className = "vscroll-line";

		//create slider
		this.scrollslider = document.createElement("DIV");
		this.scrollslider.index = this.index;
		this.scrollslider.style.position = "absolute";
		this.scrollslider.style.zIndex = 1000;
		this.scrollslider.style.textAlign = "center";
		this.scrollslider.innerHTML = '<div id="vscrollslider' + this.index + '" style="padding:0;margin:0;"><div class="scroll-bar-top"></div><div class="scroll-bar-bottom"></div></div>';
		this.scrollbar.appendChild(this.scrollslider);
		
		this.subscrollslider = document.getElementById("vscrollslider"+this.index);
		this.subscrollslider.style.height = Math.round((this.scrollContent.offsetHeight/this.scrollContent.scrollHeight)*(this.scrollbar.offsetHeight - 2*this.scrollButtonHeight)) + "px";
		
		this.scrollslider.className = "vscroll-slider";
		
		this.scrollHeight = this.scrollbar.offsetHeight - 2*this.scrollButtonHeight - this.scrollslider.offsetHeight;
		this.scrollFactor = (this.scrollContent.scrollHeight - this.scrollContent.offsetHeight)/this.scrollHeight;
		this.topPosition = getRealTop(this.scrollbar) + this.scrollButtonHeight;
		/* this.scrollbarHeight = this.scrollbar.offsetHeight - 2*this.scrollButtonHeight - this.scrollslider.offsetHeight; */

		this.scrollslider.style.top = /* 1 / this.scrollFactor * Math.abs(this.scrollContent.offsetTop) +*/ this.scrollButtonHeight + "px";
		this.scrollslider.style.left = "0px";
		this.scrollslider.style.width = "100%";
		this.scrollslider.onmousedown = VSA_handleSliderMouseDown;
		if(VSA_touchFlag) {
			this.scrollslider.addEventListener("touchstart", touchHandler, true);
		}
		if (document.all)
			this.scrollslider.onmouseup = VSA_handleSliderMouseUp;
	}
	else
		this.scrollContent.style.width = this.element.offsetWidth + "px";
}

function VSA_handleBtnUpMouseDown()
{
	var sa = VSA_scrollAreas[this.index];
	sa.scrolling = true;
	sa.scrollUp();
}

function VSA_handleBtnUpMouseUp()
{
	VSA_scrollAreas[this.index].scrolling = false;
}

function VSA_handleBtnUpMouseOut()
{
	VSA_scrollAreas[this.index].scrolling = false;
}

function VSA_handleBtnDownMouseDown()
{
	var sa = VSA_scrollAreas[this.index];
	sa.scrolling = true;
	sa.scrollDown();
}

function VSA_handleBtnDownMouseUp()
{
	VSA_scrollAreas[this.index].scrolling = false;
}

function VSA_handleBtnDownMouseOut()
{
	VSA_scrollAreas[this.index].scrolling = false;
}

function VSA_scrollIt()
{
	this.scrollContent.scrollTop = this.scrollFactor * ((this.scrollslider.offsetTop + this.scrollslider.offsetHeight/2) - this.scrollButtonHeight - this.scrollslider.offsetHeight/2);
}

function VSA_scrollUp()
{
	if (this.scrollingLimit > 0)
	{
		this.scrollingLimit--;
		if (this.scrollingLimit == 0) this.scrolling = false;
	}
	if (!this.scrolling) return;
	if ( this.scrollContent.scrollTop - this.scrollStep > 0)
	{
		this.scrollContent.scrollTop -= this.scrollStep;
		this.scrollslider.style.top = 1 / this.scrollFactor * Math.abs(this.scrollContent.scrollTop) + this.scrollButtonHeight + "px";
	}
	else
	{
		this.scrollContent.scrollTop = "0";
		this.scrollslider.style.top = this.scrollButtonHeight + "px";
		return;
	}
	setTimeout("VSA_Ext_scrollUp(" + this.index + ")", 30);
}

function VSA_Ext_scrollUp(index)
{
	VSA_scrollAreas[index].scrollUp();
}

function VSA_scrollDown()
{
	if (this.scrollingLimit > 0)
	{
		this.scrollingLimit--;
		if (this.scrollingLimit == 0) this.scrolling = false;
	}
	if (!this.scrolling) return;


	this.scrollContent.scrollTop += this.scrollStep;
	this.scrollslider.style.top =  1 / this.scrollFactor * Math.abs(this.scrollContent.scrollTop) + this.scrollButtonHeight + "px";

	if (this.scrollContent.scrollTop >= (this.scrollContent.scrollHeight - this.scrollContent.offsetHeight))
	{
		this.scrollContent.scrollTop = (this.scrollContent.scrollHeight - this.scrollContent.offsetHeight);
		this.scrollslider.style.top = this.scrollbar.offsetHeight - this.scrollButtonHeight - this.scrollslider.offsetHeight + "px";
		return;
	}

	setTimeout("VSA_Ext_scrollDown(" + this.index + ")", 30);
}

function VSA_Ext_scrollDown(index)
{
	VSA_scrollAreas[index].scrollDown();
}

function VSA_handleMouseMove(evt)
{
	var sa = VSA_scrollAreas[((document.all && !window.opera) ? this.index : document.documentElement.scrollAreaIndex)];
	var posy = 0;
	if (!evt) var evt = window.event;
	
	if (evt.pageY)
		posy = evt.pageY;
	else if (evt.clientY)
		posy = evt.clientY;
			
		if (document.all && !window.opera)
		{
			if(!document.addEventListener) {
				posy += document.documentElement.scrollTop;
			}
		}

	var iNewY = posy - sa.iOffsetY - getRealTop(sa.scrollbar) - sa.scrollButtonHeight;
		iNewY += sa.scrollButtonHeight;
		
	if (iNewY < sa.scrollButtonHeight)
		iNewY = sa.scrollButtonHeight;
	if (iNewY > (sa.scrollbar.offsetHeight - sa.scrollButtonHeight) - sa.scrollslider.offsetHeight)
		iNewY = (sa.scrollbar.offsetHeight - sa.scrollButtonHeight) - sa.scrollslider.offsetHeight;

	sa.scrollslider.style.top = iNewY + "px";

	sa.scrollIt();
}

function VSA_handleSliderMouseDown(evt)
{
	if (!(document.uniqueID && document.compatMode && !window.XMLHttpRequest))
	{
		document.onselectstart = function() { return false; }
		document.onmousedown = function() { return false; }
	}

	var sa = VSA_scrollAreas[this.index];
	if (document.all && !window.opera)
	{
		sa.scrollslider.setCapture()
		sa.iOffsetY = event.offsetY;
		sa.scrollslider.onmousemove = VSA_handleMouseMove;
		if(VSA_touchFlag) {
			sa.scrollslider.addEventListener("touchmove", touchHandler, true);
		}
	}
	else
	{
		if(window.opera)
		{
			sa.iOffsetY = event.offsetY;
		}
		else
		{
			sa.iOffsetY = evt.layerY;
		}
		document.documentElement.scrollAreaIndex = sa.index;
		document.documentElement.addEventListener("mousemove", VSA_handleMouseMove, true);
		document.documentElement.addEventListener("mouseup", VSA_handleSliderMouseUp, true);
		if(VSA_touchFlag) {
			document.documentElement.addEventListener("touchmove", touchHandler, true);
			document.documentElement.addEventListener("touchend", touchHandler, true);
		}
	}
	return false;
}

function VSA_handleSliderMouseUp()
{
	if (!(document.uniqueID && document.compatMode && !window.XMLHttpRequest))
	{
		document.onmousedown = null;
		document.onselectstart = null;
	}

	if (document.all && !window.opera)
	{
		var sa = VSA_scrollAreas[this.index];
		sa.scrollslider.onmousemove = null;
		sa.scrollslider.releaseCapture();
		sa.scrollIt();
	}
	else
	{
		var sa = VSA_scrollAreas[document.documentElement.scrollAreaIndex];
		document.documentElement.removeEventListener("mousemove", VSA_handleMouseMove, true);
		document.documentElement.removeEventListener("mouseup", VSA_handleSliderMouseUp, true);
		if(VSA_touchFlag) {
			document.documentElement.removeEventListener("touchmove", touchHandler, true);
			document.documentElement.removeEventListener("touchend", touchHandler, true);
		}
		sa.scrollIt();
	}
	return false;
}

function VSA_handleResize()
{
	if (VSA_resizeTimer)
	{
		clearTimeout(VSA_resizeTimer);
		VSA_resizeTimer = 0;
	}
	VSA_resizeTimer = setTimeout("VSA_performResizeEvent()", 100);
}

function VSA_performResizeEvent()
{
	for (var i=0; i<VSA_scrollAreas.length; i++)
		VSA_scrollAreas[i].createScrollBar();
}
function VSA_handleMouseWheel(event){
	if (this.index != null) {
		var sa = VSA_scrollAreas[this.index];
		if (sa.scrollbar == null) return;
		sa.scrolling = true;
		sa.scrollingLimit = sa.wheelSensitivity;

		var delta = 0;
		if (!event) /* For IE. */
			event = window.event;
		if (event.wheelDelta) { /* IE/Opera. */
			delta = event.wheelDelta/120;
			/*if (window.opera) delta = -delta;*/
		} else if (event.detail) { /* Mozilla case. */
			delta = -event.detail/3;
		}

		if (delta && sa.element.over) {
			if (delta > 0) {
				sa.scrollUp();
			} else {
				sa.scrollDown();
			}
			if (event.preventDefault) {
				event.preventDefault();
			}
			event.returnValue = false;
		}
	}
}

function VSA_handleSelectStart()
{
	event.returnValue = false;
}

function VSA_handleScrollbarClick(evt)
{
	var sa = VSA_scrollAreas[this.index];
	var offsetY = (document.all ? event.offsetY : evt.layerY);

	if (offsetY < (sa.scrollButtonHeight + sa.scrollslider.offsetHeight/2))
		sa.scrollslider.style.top = sa.scrollButtonHeight + "px";
	else if (offsetY > (sa.scrollbar.offsetHeight - sa.scrollButtonHeight - sa.scrollslider.offsetHeight))
		sa.scrollslider.style.top = sa.scrollbar.offsetHeight - sa.scrollButtonHeight - sa.scrollslider.offsetHeight + "px";
	else
	{
		sa.scrollslider.style.top = offsetY + sa.scrollButtonHeight - sa.scrollslider.offsetHeight/2 + "px";
	}
	sa.scrollIt();
}

function VSA_handleOnScroll()
{
	//event.srcElement.doScroll("pageUp");
}

//--- common functions ----

function VSA_getElements(attrValue, tagName, ownerNode, attrName) //get Elements By Attribute Name
{
	if (!tagName) tagName = "*";
	if (!ownerNode) ownerNode = document;
	if (!attrName) attrName = "name";
	var result = [];
	var nl = ownerNode.getElementsByTagName(tagName);
	for (var i=0; i<nl.length; i++)
	{
	//	if (nl.item(i).getAttribute(attrName) == attrValue)
//		result.push(nl.item(i));
		if (nl.item(i).className.indexOf(attrValue) != -1)
		result.push(nl.item(i));
	}
	return result;
}

function getRealTop(obj) {
	var posTop = 0;
	while (obj.offsetParent) {
		posTop += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return posTop;
}

// fixTrans
var transparentImage = "images/none.gif";
function fixTrans() {
	if (typeof document.body.style.maxHeight == 'undefined') {
		var imgs = document.getElementsByTagName("img");
		for (i = 0; i < imgs.length; i++) {
			if (imgs[i].src.indexOf(transparentImage) != -1) {
				return;
			}
			if (imgs[i].src.indexOf(".png") != -1) {
				var src = imgs[i].src;
				imgs[i].src = transparentImage;
				imgs[i].runtimeStyle.filter =
				"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='none')";
			}
		}
	}
}
if (document.all && !window.opera) attachEvent("onload", fixTrans);

// popups function
function initPopups() {
	var _zIndex = 9999;
	var _fadeSpeed = 350;
	var _faderOpacity = 0.65;
	var _faderBackground = '#000';
	var _faderId = 'lightbox-overlay';
	var _closeLink = 'a.btn-close, a.close, a.cancel';
	var _fader;
	var _lightbox = null;
	var _ajaxClass = 'ajax-load';
	var _openers = jQuery('a.open-popup');
	var _page = jQuery(document);
	var _minWidth = jQuery('body > div:eq(0)').outerWidth();
	var _scroll = false;

	// init popup fader
	_fader = jQuery('#'+_faderId);
	if(!_fader.length) {
		_fader = jQuery('<div />');
		_fader.attr('id',_faderId);
		jQuery('body').append(_fader);
	}
	_fader.css({
		opacity:_faderOpacity,
		backgroundColor:_faderBackground,
		position:'absolute',
		overflow:'hidden',
		display:'none',
		top:0,
		left:0,
		zIndex:_zIndex
	});

	// IE6 iframe fix
	if(jQuery.browser.msie && jQuery.browser.version < 7) {
		if(!_fader.children().length) {
			var _frame = jQuery('<iframe src="javascript:false" frameborder="0" scrolling="no" />');
			_frame.css({
				opacity:0,
				width:'100%',
				height:'100%'
			});
			var _frameOverlay = jQuery('<div>');
			_frameOverlay.css({
				top:0,
				left:0,
				zIndex:1,
				opacity:0,
				background:'#000',
				position:'absolute',
				width:'100%',
				height:'100%'
			});
			_fader.empty().append(_frame).append(_frameOverlay);
		}
	}

	// lightbox positioning function
	function positionLightbox() {
		if(_lightbox) {
			var _windowHeight = jQuery(window).height();
			var _windowWidth = jQuery(window).width();
			var _lightboxWidth = _lightbox.outerWidth();
			var _lightboxHeight = _lightbox.outerHeight();
			var _pageHeight = _page.height();

			if (_windowWidth < _minWidth) _fader.css('width',_minWidth);
				else _fader.css('width','100%');
			if (_windowHeight < _pageHeight) _fader.css('height',_pageHeight);
				else _fader.css('height',_windowHeight);

			_lightbox.css({
				position:'absolute',
				zIndex:(_zIndex+1)
			});

			// vertical position
			if (_windowHeight > _lightboxHeight) {
				if (jQuery.browser.msie && jQuery.browser.version < 7) {
					_lightbox.css({
						position:'absolute',
						top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
					});
				} else {
					_lightbox.css({
						position:'fixed',
						top: (_windowHeight - _lightboxHeight) / 2
					});
				}
			} else {
				var _faderHeight = _fader.height();
				if(_faderHeight < _lightboxHeight) _fader.css('height',_lightboxHeight);
				if (!_scroll) {
					if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
						_faderHeight = parseInt(jQuery(window).scrollTop())
						_scroll = _faderHeight;
					} else {
						_scroll = _faderHeight - _lightboxHeight;
					}
				}
				_lightbox.css({
					position:'absolute',
					top: _scroll
				});
			}

			// horizontal position
			if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({left:(_fader.width() - _lightbox.outerWidth()) / 2});
			else _lightbox.css({left: 0});
		}
	}

	// show/hide lightbox
	function toggleState(_state) {
		if(!_lightbox) return;
		if(_state) {
			_fader.fadeIn(_fadeSpeed,function(){
				_lightbox.fadeIn(_fadeSpeed);
			});
			_scroll = false;
			positionLightbox();
		} else {
			_lightbox.fadeOut(_fadeSpeed,function(){
				_fader.fadeOut(_fadeSpeed);
				_scroll = false;
			});
		}
	}

	// popup actions
	function initPopupActions(_obj) {
		if(!_obj.get(0).jsInit) {
			_obj.get(0).jsInit = true;
			// close link
			_obj.find(_closeLink).click(function(){
				_lightbox = _obj;
				toggleState(false);
				return false;
			});
		}
	}

	// lightbox openers
	_openers.each(function(){
		var _opener = jQuery(this);
		var _target = _opener.attr('href');

		// popup load type - ajax or static
		if(_opener.hasClass(_ajaxClass)) {
			_opener.click(function(){
				// ajax load
				if(jQuery('div[rel*="'+_target+'"]').length == 0) {
					jQuery.ajax({
						url: _target,
						type: "GET",
						dataType: "html",
						success: function(msg){
							// append loaded popup
							_lightbox = jQuery(msg);
							_lightbox.find('img').load(positionLightbox)
							_lightbox.attr('rel',_target).hide().css({
								position:'absolute',
								zIndex:(_zIndex+1),
								top: -9999,
								left: -9999
							});
							jQuery('body').append(_lightbox);

							// init js for lightbox
							initPopupActions(_lightbox);

							// show lightbox
							toggleState(true);
						},
						error: function(msg){
							alert('AJAX error!');
							return false;
						}
					});
				} else {
					_lightbox = jQuery('div[rel*="'+_target+'"]');
					toggleState(true);
				}
				return false;
			});
		} else {
			if(jQuery(_target).length) {
				// init actions for popup
				var _popup = jQuery(_target);
				initPopupActions(_popup);
					// open popup
					_opener.click(function(){
					if(this.name !== "") {
						setExitLink(this.name);
					}
					if(_lightbox) {
						_lightbox.fadeOut(_fadeSpeed,function(){
							_lightbox = _popup.hide();
							toggleState(true);
						})
					} else {
						_lightbox = _popup.hide();
						toggleState(true);
					}
					return false;
				});
			}
		}
	});

	// event handlers
	jQuery(window).resize(positionLightbox);
	jQuery(window).scroll(positionLightbox);
	jQuery(document).keydown(function (e) {
		if (!e) evt = window.event;
		if (e.keyCode == 27) {
			toggleState(false);
		}
	})
	_fader.click(function(){
		if(!_fader.is(':animated')) toggleState(false);
		return false;
	})
}

// Anchor Animate
$(document).ready(function() {
	$("a.anchorLink").anchorAnimate()
});

jQuery.fn.anchorAnimate = function(settings) {

 	settings = jQuery.extend({
		speed : 500
	}, settings);	
	
	return this.each(function(){
		var caller = this
		$(caller).click(function (event) {	
			event.preventDefault()
			var locationHref = window.location.href
			var elementClick = $(caller).attr("href")
			
			var destination = $(elementClick).offset().top;
			$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
				window.location.hash = elementClick
			});
		  	return false;
		})
	})
}

// peKenburnsSlider
if(!jQuery.easing.easeInQuad){jQuery.extend(jQuery.easing,{easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInExpo:function(e,f,a,h,g){return(f===0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f===0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h===0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;i=j/4}else{i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h===0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;i=j/4}else{i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h===0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;i=j/4}else{i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g===undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g===undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g===undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}})};(function(a){a.pixelentity=a.pixelentity||{version:"1.0.0"};a.pixelentity.Geom={getScaler:function(n,e,o,m,j,i,c){var f={};var d=m/i;var l=j/c;var b;if(typeof n=="string"){switch(n){case"fill":case"fillmax":b=d>l?d:l;if(n=="fill"){b=Math.min(1,b)}break;case"fit":case"fitmax":b=d<l?d:l;if(n=="fit"){b=Math.min(1,b)}break;case"none":b=1;break}}else{b=n}f.ratio=b;f.diff={};f.offset={};f.align={w:e,h:o};var k=f.diff;var g=f.offset;k.w=g.w=m-i*b;k.h=g.h=j-c*b;switch(e){case"center":g.w=k.w/2;break;case"left":g.w=0;break}switch(o){case"center":g.h=k.h/2;break;case"top":g.h=0;break}return f},splitProps:function(b,c){var d=b.split(/,/);return c?{h:parseFloat(d[0]),w:parseFloat(d[1])}:{h:d[0],w:d[1]}}}})(jQuery);(function(c){c.pixelentity=c.pixelentity||{version:"1.0.0"};if(c.pixelentity.ticker){return}var h=[];var d=0;function a(){return(new Date()).getTime()}var i,g,b;var f=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||false;function e(){var m,l;if(d>0){m=a();for(var k in h){l=h[k];if(m-l.last>=l.each){l.callback();l.last=m}}if(f){f(e)}}}var j=c.pixelentity.ticker={register:function(l,k){d++;h.push({callback:l,last:a(),each:k?parseInt(1000/k,10):33});if(d==1){if(f){f(e)}else{i=setInterval(e,16);g=setInterval(e,20);b=setInterval(e,30)}}},unregister:function(l){for(var k in h){if(h[k].callback==l){delete h[k];d--}}if(d<=0){clearInterval(i);clearInterval(g);clearInterval(b)}}}})(jQuery);(function(e){e.pixelentity=e.pixelentity||{version:"1.0.0"};if(e.pixelentity.youtube){return}var f=false;var c=window.YT&&window.YT.Player;var d=[];function b(){for(var g=0;g<d.length;g++){d[g](c)}}function a(){if(f){return}f=true;var g=document.createElement("script");g.src="http://www.youtube.com/player_api";var h=document.getElementsByTagName("script")[0];h.parentNode.insertBefore(g,h);window.onYouTubePlayerAPIReady=function(){c=YT.Player;b()}}e.pixelentity.youtube=function(g){if(c){g(c)}else{d.push(g);a()}}})(jQuery);(function(c){c.pixelentity=c.pixelentity||{version:"1.0.0"};if(c.pixelentity.vimeo){return}var a=0;function b(j,f){var d=this;var e;function i(){a++;var k=c('<iframe id="pe_vimeo_player'+a+'" src="http://player.vimeo.com/video/'+f.videoId+"?autoplay="+(f.playerVars.autoplay?1:0)+"&loop="+(f.playerVars.loop?1:0)+"&api=1&player_id=pe_vimeo_player"+a+"&origin="+location.href.match(/:\/\/(.[^\/]+)/)[1]+'" width="'+f.width+'" height="'+f.height+'" frameborder="0"></iframe>')[0];c(j).append(k);e=Froogaloop(k);e.addEvent("ready",g);setTimeout(g,4000)}function g(){e.removeEvent("ready",g);e.addEvent("finish",h)}function h(){c(d).trigger("pixelentity.video_ended")}c.extend(d,{destroy:function(){e.removeEvent("ready",g);e.removeEvent("finish",h);c(e.element).remove();delete e.element;e=undefined;d=undefined}});i()}c.pixelentity.vimeo=function(d){d(b)}})(jQuery);(function(f){var i="0px 0px";var n="bilinear";var g=function(ad,ac,ab){function C(o,m){for(var p in o){if(U[o[p]]!==ab){return m=="pfx"?o[p]:!0}}return !1}function D(o,m){return !!~(""+o).indexOf(m)}function E(o,m){return typeof o===m}function F(o,m){return G(R.join(o+";")+(m||""))}function G(m){U.cssText=m}var aa="2.0.6",Z={},Y=ac.documentElement,X=ac.head||ac.getElementsByTagName("head")[0],W="modernizr",V=ac.createElement(W),U=V.style,T,S=Object.prototype.toString,R=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),Q={},P={},O={},M=[],K=function(m,u,t,s){var r,q,p,o=ac.createElement("div");if(parseInt(t,10)){while(t--){p=ac.createElement("div"),p.id=s?s[t]:W+(t+1),o.appendChild(p)}}r=["&shy;","<style>",m,"</style>"].join(""),o.id=W,o.innerHTML+=r,Y.appendChild(o),q=u(o,m),o.parentNode.removeChild(o);return !!q},J,I={}.hasOwnProperty,H;!E(I,ab)&&!E(I.call,ab)?H=function(o,m){return I.call(o,m)}:H=function(o,m){return m in o&&E(o.constructor.prototype[m],ab)};var N=function(m,q){var p=m.join(""),o=q.length;K(p,function(r,w){var v=ac.styleSheets[ac.styleSheets.length-1],u=v.cssRules&&v.cssRules[0]?v.cssRules[0].cssText:v.cssText||"",t=r.childNodes,s={};while(o--){s[t[o].id]=t[o]}Z.csstransforms3d=s.csstransforms3d.offsetLeft===9},o,q)}([,["@media (",R.join("transform-3d),("),W,")","{#csstransforms3d{left:9px;position:absolute}}"].join("")],[,"csstransforms3d"]);Q.csstransforms3d=function(){var m=!!C(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);m&&"webkitPerspective" in Y.style&&(m=Z.csstransforms3d);return m};for(var L in Q){H(Q,L)&&(J=L.toLowerCase(),Z[J]=Q[L](),M.push((Z[J]?"":"no-")+J))}G(""),V=T=null,Z._version=aa,Z._prefixes=R,Z.testProp=function(m){return C([m])},Z.testStyles=K;return Z}(this,this.document);var h=/progid:DXImageTransform\.Microsoft\.Matrix\(.*?\)/;var d=document.createElement("modernizr"),e=d.style;function l(){var m={transformProperty:"",MozTransform:"-moz-",WebkitTransform:"-webkit-",OTransform:"-o-",msTransform:"-ms-"};for(var o in m){if(typeof e[o]!="undefined"){return m[o]}}return null}function j(){var o=["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"];for(var m in o){if(e[o[m]]!==undefined){return true}}}var a=l(),b=a!==null?a+"transform":false,k=a!==null?a+"transform-origin":false;f.support.csstransforms=j();f.support.hw3dTransform=(g.csstransforms3d&&f.browser.webkit);if(a=="-ms-"){b="msTransform";k="msTransformOrigin"}function c(o,s,x,v,u,p){if(f.support.csstransforms){var t;if(f.support.hw3dTransform){x=100*x/u;v=100*v/p;t=(x!==undefined)?"translate3d("+x+"%,"+v+"%,0) ":"translateZ(0) "}else{t=(x!==undefined)?"translate("+x+"px,"+v+"px) ":""}f(o).css(k,i).css(b,t+"scale("+s+")")}else{if(f.browser.msie){var m=o.style;var q='progid:DXImageTransform.Microsoft.Matrix(FilterType="'+n+'",M11='+s+",M12=0,M21=0,M22="+s+",Dx="+x+",Dy="+v+")";var r=m.filter||f.curCSS(o,"filter")||"";m.filter=h.test(r)?r.replace(h,q):r?r+" "+q:q}}}f.fn.transform=function(r,p,o,m,q){this.each(function(){c(this,r,p,o,m,q)});return this}})(jQuery);var Froogaloop=(function(){function f(m){return new f.fn.init(m)}var j={},b=false,l=Array.prototype.slice;f.fn=f.prototype={playerDomain:"",element:null,init:function(m){if(typeof m==="string"){m=document.getElementById(m)}this.element=m;return this},api:function(r,p){if(!this.element||!r){return false}var m=this,o=m.element,n=o.id!=""?o.id:null,s=!a(p)?p:null,q=a(p)?p:null;if(q){i(r,q,n)}k(r,s,o);return m},addEvent:function(n,q){if(!this.element){return false}var m=this,p=m.element,o=p.id!=""?p.id:null;i(n,q,o);if(n!="ready"){k("addEventListener",n,p)}if(b){return m}playerDomain=h(p.getAttribute("src"));if(window.addEventListener){window.addEventListener("message",g,false)}else{window.attachEvent("onmessage",g,false)}b=true;return m},removeEvent:function(n){if(!this.element){return false}var m=this,p=m.element,o=p.id!=""?p.id:null,q=c(n,o);if(n!="ready"&&q){k("removeEventListener",n,p)}}};function k(o,p,q){if(!q.contentWindow.postMessage){return false}var m=q.getAttribute("src").split("?")[0],n=JSON.stringify({method:o,value:p});q.contentWindow.postMessage(n,m)}function g(o){if(o.origin!=playerDomain){return false}var q=JSON.parse(o.data),p=q.value,s=q.event||q.method,n=q.data,m=m==""?null:q.player_id,r=d(s,m),t=[];if(!r){return false}if(p!==undefined){t.push(p)}if(n){t.push(n)}if(m){t.push(m)}return t.length>0?r.apply(null,t):r.call()}function i(m,o,n){if(n){if(!j[n]){j[n]={}}j[n][m]=o}else{j[m]=o}}function d(m,n){if(n){return j[n][m]}else{return j[m]}}function c(m,n){if(n&&j[n]){if(!j[n][m]){return false}j[n][m]=null}else{if(!j[m]){return false}j[m]=null}return true}function h(n){var q=n.split("/"),p="";for(var o=0,m=q.length;o<m;o++){if(o<3){p+=q[o]}else{break}if(o<2){p+="/"}}return p}function a(m){return !!(m&&m.constructor&&m.call&&m.apply)}function e(m){return toString.call(m)==="[object Array]"}f.fn.init.prototype=f.fn;return(window.Froogaloop=f)})();(function(b){b.pixelentity=b.pixelentity||{version:"1.0.0"};b.pixelentity.video={conf:{}};function a(n,f){var m=this;var g=b(this);var d=n;var l;var k;function c(){switch(f.type){case"youtube":b.pixelentity.youtube(e);break;case"vimeo":b.pixelentity.vimeo(i);break}}function e(o){l=new o(d[0],{height:f.height,width:f.width,videoId:f.videoId,playerVars:{theme:"dark",wmode:"opaque",autohide:0,enablejsapi:1,origin:location.href.match(/:\/\/(.[^\/]+)/)[1],loop:f.loop?1:0,autoplay:f.autoPlay?1:0,showinfo:0,iv_load_policy:3,modestbranding:1,showsearch:0,fs:0},events:{onStateChange:j}});k=setInterval(j,250)}function i(o){l=new o(d[0],{height:f.height,width:f.width,videoId:f.videoId,playerVars:{autohide:0,origin:location.href.match(/:\/\/(.[^\/]+)/)[1],loop:f.loop?1:0,autoplay:f.autoPlay?1:0}});b(l).one("pixelentity.video_ended",h)}function h(){g.trigger("pixelentity.video_ended")}function j(){if(!l){return}switch(l.getPlayerState()){case YT.PlayerState.ENDED:g.trigger("pixelentity.video_ended");break;case YT.PlayerState.PLAYING:if((l.getDuration()-l.getCurrentTime())<0.4){g.trigger("pixelentity.video_ended")}break}}b.extend(m,{bind:function(p,o){g.bind(p,handler)},destroy:function(){clearInterval(k);if(g){g.remove()}g=m=undefined;if(l){b(l).unbind("pixelentity.video_ended");l.destroy()}l=undefined;d.data("peVideo",null);d=undefined}});c()}b.fn.peVideo=function(c){var d=this.data("peVideo");if(d){return d}c=b.extend(true,{},b.pixelentity.video.conf,c);this.each(function(){d=new a(b(this),c);b(this).data("peVideo",d)});return c.api?d:this}})(jQuery);(function(h){h.pixelentity=h.pixelentity||{version:"1.0.0"};h.pixelentity.kenburnsImg={conf:{zoom:"random",align:"random",pan:"random",duration:"15",paused:false}};var i={width:0,height:0,"margin-left":0,"margin-top":0};var k=["top","center","bottom"];var d=["left","center","right"];var b=false;var j=false;var e=false;var f=h.browser.msie&&h.browser.version>8;if(h.browser.msie){b=true;e=h.browser.msie}if(!b&&!!document.createElement("canvas").getContext){j=true}var a=navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/);if(a){b=true;j=false}function c(r,n,l,q,p,o,m){if(j){if(n){n.drawImage(r[0],o,m,l*p,q*p)}}else{if(b){if(r){r.transform(p,o,m,l,q)}}else{i.width=l*p;i.height=q*p;i["margin-left"]=o;i["margin-top"]=m;if(r){r.css(i)}}}}function g(D,z){var F=this;var E=D;if(j){D.hide()}var O,s,A,L,o,M,P,G,H,q,N,B,y,C=500,p=0,x,l;var m,I,K;var J=false;function n(){var t;if(p>0){P=G;H=q;o=M}else{t=h.pixelentity.Geom.getScaler(m=="out"?"fill":"none",K.w,K.h,A,L,O,s);P=t.offset.w;H=t.offset.h;o=t.ratio}t=h.pixelentity.Geom.getScaler(m=="in"?"fill":"none",I.w,I.h,A,L,O,s);G=t.offset.w;q=t.offset.h;M=t.ratio;N=0;B=0;C=parseFloat(z.duration)*33;y=f?20:0;p++}function r(){return k[parseInt(Math.random()*2+0.5,10)]+","+d[parseInt(Math.random()*2+0.5,10)]}function v(){m=z.zoom=="random"?(Math.random()>0.5?"out":"in"):z.zoom;K=h.pixelentity.Geom.splitProps(z.align=="random"?r():z.align);I=h.pixelentity.Geom.splitProps(z.pan=="random"?r():z.pan)}function u(){if(J){return}var t=y/C;var R=o+(M-o)*t;var Q=P+(G-P)*t;var w=H+(q-H)*t;c(E,x,O,s,R,Q,w);y++;if((y+(f?20:0))>C){F.pause()}}h.extend(F,{init:function(w){O=D.width()||D[0].width;s=D.height()||D[0].height;var t=D.parent();while(t&&!t.width()){t=t.parent()}A=t?t.width():800;L=t?t.height():600;E.css("image-rendering","optimizeQuality").css("-ms-interpolation-mode","bicubic");if(e){E.parent().css("background-color","black")}F.start()},start:function(){p=0;v();n();J=false;if(j){if(!x){l=h('<canvas width="'+A+'" height="'+L+'"></canvas>');x=l[0];E.hide().after(l);x=x.getContext("2d");x.fillStyle="rgb(255,255,255)"}}if(z.paused){u();J=true}h.pixelentity.ticker.register(u)},stop:function(){h.pixelentity.ticker.unregister(u)},reset:function(){J=true;p=0;v();n();J=false},getTarget:function(){if(l){return l}return E},pause:function(){J=true},resume:function(){J=false},destroy:function(){F.paused=true;F.stop();if(j&&l){l.remove();l=undefined;x=undefined}F=undefined;E.data("peKenburnsImg",null);E=undefined}});if((!D.width())&&(!D[0].width)){D.one("load",F.init)}else{F.init()}}h.fn.peKenburnsImg=function(l){var m=this.data("peKenburnsImg");if(m){m.start();return m}l=h.extend(true,{},h.pixelentity.kenburnsImg.conf,l);this.each(function(){m=new g(h(this),l);h(this).data("peKenburnsImg",m)});return l.api?m:this}})(jQuery);(function(c){c.pixelentity=c.pixelentity||{version:"1.0.0"};c.pixelentity.kenburnsSlider={conf:{externalFont:false}};function b(e,i,h,d){var f=(1<<24)|(parseInt(i,10)<<16)|(parseInt(h,10)<<8)|parseInt(d,10);return"#"+f.toString(16).substr(1)}function a(Y,aE){var aL=this;var aj=Y.addClass("peKenBurns").removeClass("peNoJs");var an=false;if(aj.is("img")){var x=false;if(Y.parent().is("a")){x=true}var a7='<img src="'+Y.attr("src")+'" data-src="'+(Y.attr("data-src")||"")+'"/>';var i=c('<div class="peKenBurns" data-autopause="none" data-controls="disabled" data-shadow="'+(Y.attr("data-shadow")||"disabled")+'" data-logo="disabled"><div class="peKb_slides" ><div class="peKb_active" data-delay="'+(Y.attr("data-delay")||"3")+'" data-duration="'+(Y.attr("data-duration")||"10")+'">'+a7+(Y.attr("alt")?"<h1>"+Y.attr("alt")+"</h1>":"")+'</div><div data-delay="'+(Y.attr("data-delay")||"3")+'" data-duration="'+(Y.attr("data-duration")||"15")+'">'+a7+"</div></div></div>");Y.replaceWith(i);aj=Y=i;Y.data("peKenburnsSlider",this);if(x){Y.css("cursor","pointer")}an=true}else{Y.css({"background-color":"transparent","-moz-border-radius":"0px","-webkit-border-radius":"0px","border-radius":"0px",padding:"0px"})}var ap=c.pixelentity&&c.pixelentity.kenburnsImg&&(Y.attr("data-mode")!="swipe");var F=false;var aU=true;(function(){var h=Y.attr("data-autopause");if(h){F=h.match(/controls/)!==null;aU=h.match(/image/)!==null}})();var ao=c('<div class="peKb_spinner"></div>');var bc=c('<div class="peKb_videooverlay"></div>');var al="";if(Y.attr("data-captions")!="disabled"){al=c('<div class="peKb_caption"></div>')}var s=false;if(Y.attr("data-thumb")!="disabled"){s=c('<div class="peKb_Thumb"><div>');var l=s.find("div");var T=s.find("img");var au=false}var aC=c('<div class="peKb_timer"><div class="peKb_overlay"></div></div>');var a6;var aD;var M;var aX;var a0;var aS=800;var Q=0;var p;var ad;var bg=-1;var aK;var ba=[];var a3=false;var ax=false;var V=Y.width();var ab=Y.height();var aW=!(c.browser.msie&&c.browser.version>=7&&c.browser.version<9);var r=false;var B;var bb=0;var a4=-1;var X=false;var n=false;var a9=false;var aT=false;var D=0;var L=false;var e=false;var aR=false;var ac=(Y.attr("data-shadow")!="disabled");var aa=(Y.attr("data-controls")!="disabled");var y=(Y.attr("data-controls")=="inner");var j=(Y.attr("data-logo")=="enabled");var at=navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/);if(j){Y.css("overflow","visible")}if(an&&ac){ab-=36}if(!an&&ac&&!aa){ab-=50}if(!an&&!ac&&y){ab+=50}var J=Y.find("div.peKb_slides");if(J.length===0){Y.wrapInner('<div class="peKb_slides"></div>');J=Y.find("div.peKb_slides")}var a2=parseInt(J.css("padding-left").replace(/px/,""),10)||0;var A="";if(aa){A+='<div class="peKb_controls"><div class="peKb_holder"><div class="peKb_mainPanel"><div class="peKb_iebg"><ul class="peKb_slideBtns"><li><a href="#" class="peKb_currentSlide">1</a></li></ul><div class="peKb_arrows"><a class="peKb_prev" href="#">p</a><a class="peKb_next" href="#">n</a></div><span class="peKb_iebgRight"></span></div></div><div class="peKb_videoClose"><a href="#">close</a></div></div></div>'}if(j){A+='<div class="peKb_logoLabel"><a href="'+(Y.attr("data-logo-link")||"#")+'" target="'+(Y.attr("data-logo-target")||"_self")+'" >logo</a></div>'}if(ac){A+='<div class="peKb_shadow"><div class="peKb_left"></div><div class="peKb_middle"></div><div class="peKb_right"></div></div>'}var f=A?c(A):false;var E=0;if(f){if(c.browser.msie){var u="";if(c.browser.version<10){Y.wrap('<div class="ie'+Math.floor(c.browser.version)+'"></div>')}}J.after(f);if(y){var aA=f.filter(".peKb_controls");f.addClass("peKb_controlsInner");E=f.height();aA.css("margin-top",-E-a2+10+(at?1:0))}else{if(a2!=15){f.filter(".peKb_controls").css("margin-top",-(a2+1))}}if(ac){var aO=f.filter(".peKb_shadow").css("z-index","0");J.before(aO)}}function Z(h){P=c(h.currentTarget).hasClass("peKb_next")?"next":"prev";aZ(a8(Q,P));return false}function U(){q();return false}if(aa){J.before(aC.hide());aX=aC.css("color").replace(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/g,b);var R=aC.find(".peKb_overlay");M=(R.width()||22);if(document.createElement("canvas").getContext){a6=c('<canvas width="'+M+'" height="'+M+'"></canvas>');R.after(a6);a6=a6[0].getContext("2d")}else{aD=c('<div class="peKb_sprite"></div>');aC.find(".peKb_overlay").after(aD)}f.find(".peKb_prev, .peKb_next").click(Z).end();E=f.height();var C=f.find("ul.peKb_slideBtns").empty();var aG=f.find(".peKb_videoClose");var I=f.find(".peKb_mainPanel");var ai=(c.browser.msie&&c.browser.version>=8&&c.browser.version<9)?"top":"margin-top";aG.find("a").click(U).end();if(y){aG.fadeOut(0)}else{aG.css(ai,-E)}}var a5=V-2*a2;var bd=ab-2*a2-E;if(ac){var d=Y.find(".peKb_shadow");d.width(V).find(".peKb_middle").width(V-d.find(".peKb_left").width()-d.find(".peKb_right").width())}Y.append(s);if(s){var ah=Y.offset();ah.top=ah.top+bd+a2-s.height()+13;if(y){ah.top-=E-10}s.data("top",ah.top);s.offset(ah);s.hide()}flashEnabled=true;var K={width:a5,height:bd,left:0,overflow:"hidden",visible:true,display:"block",opacity:0};var P="next";var ak=J.width(a5).height(bd).find(" > div");var af=c('<div class="peKb_frame"></div>').width(a5).height(bd);function aB(h){aT=false;if(D){clearTimeout(D)}if(h.currentTarget==Y[0]){switch(h.type){case"mouseenter":if(F){X=true}bf();break;case"mouseleave":if(!r&&F){X=false}W();break}}else{switch(h.type){case"mouseenter":if(an){X=false;aq().resume();z(0)}else{if(aU){X=true}}n=true;break;case"mouseleave":if(an){X=true;aq().pause();z(1)}else{if(!r&&aU){X=false}}n=false;break}}}Y.find("div.peKb_slides").append(ao).append(bc).append(al).bind("mouseenter",aB).bind("mouseleave",aB).end();var O=0;var aQ=0;if(al){O=parseInt(al.css("margin-bottom").replace(/px/),10);aQ=parseInt(al.css("margin-left").replace(/px/),10)}if(!ap){J.wrapInner('<div class="peKb_slides"></div>');var az=J.find("> div");az.width(a5).height(bd).css({position:"absolute","border-width":0,"border-radius":0,"background-image":"none","background-color":af.css("background-color"),"z-index":1,top:a2,left:a2,padding:"0px",margin:"0px"}).show();if(al){al.width(a5).height(bd)}}else{ak.css("margin-left",a2);if(al){al.width(a5).height(bd).css("margin-top",a2).css("margin-left",a2)}}J.prepend(af);var H=af.css("background-color").replace(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/g,b);function aw(bl,bk,bn){bn=bl?bn:"fade";aS=bn=="swipe"?700:1000;p=bk;function bj(){a1();if(bl){bl.fadeOut(0);bl.find("img:eq(0)").css("margin-left",0)}}if(bl){var bh=bl.find("img:eq(0)").data("peKenburnsImg");if(bh){bh.stop()}}var bm;if(bk.find("a.video").length>0){bc.empty().removeClass("peKb_noBack").fadeIn(0);if(!flashEnabled){bm=c("<a>");bm.attr("href",bk.find("a.video").attr("href")).attr("target","_blank");bm.width(bc.width()).height(bc.height()).css("position","absolute").show();bc.empty().append(bm)}else{if(bk.find("a.video").hasClass("autostart")){if(r){setTimeout(function(){bc.triggerHandler("click")},500)}else{bc.triggerHandler("click")}}}}else{if(bk.find("a").length>0){bc.fadeIn(0);bm=c("<a>");c.each(bk.find("a").data("events"),function(bo,bp){c.each(bp,function(bq,br){bm.bind(bo,br.handler)})});bm.attr("href",bk.find("a").attr("href")).attr("target",bk.find("a").attr("target"));bm.width(bc.width()).height(bc.height()).css("position","absolute").show();bc.empty().addClass("peKb_noBack").append(bm)}else{bc.empty().removeClass("peKb_noBack").fadeOut(0)}}switch(bn){case"fade":if(bl){bl.css(K).css("opacity",1).fadeTo(aS,0)}bk.css(K).css("opacity",0).fadeTo(aS,1,a1);break;case"whitefade":bk.css(K).css("opacity",0);bl.css(K).css("opacity",1).fadeTo(aS/2,0,"easeOutQuad",function(){bk.fadeTo(aS/2,1,"easeInQuad",a1)});break;case"flyBy":if(P=="next"){if(bl){bl.css(K).css("opacity",1)}bk.css(K).css("left",50);if(bl){bl.animate({left:-100,opacity:0},aS,"easeOutCubic")}bk.animate({left:0,opacity:1},aS,"easeOutCubic",a1)}else{if(bl){bl.css(K).css("opacity",1)}bk.css(K).css("left",-50);if(bl){bl.animate({left:100,opacity:0},aS,"easeOutCubic")}bk.animate({left:0,opacity:1},aS,"easeOutCubic",a1)}break;case"swipe":var w;var h=100;bk.css(K);if(bl){bl.css(K).css("opacity",1)}w=(P=="next")?bk.find("img:eq(0)"):bl?bl.find("img:eq(0)"):null;function bi(bo,bq){var bp=Math.round(bo*a5);var br=Math.round(h*(1-bo));bk.css("left",-br).width(bp+h);if(w){w.css("margin-left",-bp)}if(bl){bl.css("opacity",0.5+0.5*(1-bo)).css("left",bp+h-br).width(a5-bp)}}function t(bo,bq){var bp=Math.round(bo*a5);var br=Math.round(h*(1-bo));bk.css("left",a5-bp+br).width(bp);if(w){w.css("margin-left",bp-a5)}if(bl){bl.css("opacity",0.5+0.5*(1-bo)).css("left",br-h).width(a5-bp+h)}}bk.animate({opacity:1},{duration:aS,easing:"easeOutCubic",complete:bj,step:P=="next"?t:bi});break}}function G(h){a3=false;aZ(parseInt(h.target.id,10),true)}function a1(){a3=false}function aJ(w,t){var h=ba[w].resource;if(!h){return true}var bh=c(h).attr("src")?"":c(h).attr("data-src");if(bh){c(h).attr("src",bh)}if(!h.complete){if(t){c(h).one("error",t).one("load",t)}}return h.complete}function aF(){if(!a9&&ad&&!ax){aC.show().offset(ad.offset())}}function av(){ax=false;aF()}function ag(h){if(C){ad=C.find("a").removeClass("peKb_currentSlide").eq(h).addClass("peKb_currentSlide");ae(0);aF()}}function z(h){if(!L){return}var w=ba[h].caption;var bh;var t;if(w){bh=w.find(".peKb_real");t=w.find(".peKb_background");bh.css("margin-left",10).css("opacity",0).width(0).show();t.css("margin-left",100).css("opacity",0).width(0).show();bh.stop(true).delay(an?500:500).animate({"margin-left":0,opacity:1,width:t.data("width")},1000,"easeOutCubic");t.stop(true).delay(an?0:200).animate({"margin-left":0,opacity:0.5,width:t.data("width")},1000,"easeOutCubic")}if(aK){bh=aK.find(".peKb_real");t=aK.find(".peKb_background");bh.stop(true).fadeTo(an?0:500,0);t.stop(true).fadeTo(an?0:500,0)}aK=w}function aZ(h,bh){if(bg!=h&&!a3){a3=true;if(!bh&&!aJ(h,G)){ao.fadeIn(500);return}var bj=ak.eq(h).find("a.video.autostart").length>0;q(bj);aJ(a8(h,"next"));if(!an){ag(h);z(h)}Q=bg=h;if(!bj){ao.fadeOut(100)}var bl=ak.filter(".peKb_active").removeClass("peKb_active");var bk=ak.eq(h).addClass("peKb_active");var bi=bk.attr("data-transition")||"swipe";var t;if(ap){t=bk.find("img");if(t){bi="fade"}}var w=bk.attr("data-delay");if(w){bb=a4=parseFloat(w)*20}else{bb=a4=-1;ae(360)}bk.show().fadeOut(0);if(t){t=t.peKenburnsImg({zoom:bk.attr("data-zoom"),align:bk.attr("data-align"),pan:bk.attr("data-pan"),duration:bk.attr("data-duration"),paused:an,api:true});if(an&&n){t.resume()}}aw(bl[0]?bl:null,bk,bi);if(aT){aT=false;D=setTimeout(W,1000)}}}function ae(w){if(!C){return}if(a6){var t=M-1;var h=M/2;var bh=h+1;a6.clearRect(0,0,M,M);if(w>0){a6.beginPath();a6.moveTo(h,bh);a6.arc(h,bh,t/2,(270/360)*2*Math.PI,((w+270)/360)*2*Math.PI,false);a6.lineTo(h,bh);a6.closePath();a6.fillStyle=aX;a6.fill()}}else{aD.css("background-position-y","-"+Math.round(12-(12*(w/360)))*M+"px")}}function aN(){if(X||a4<0){return}ae(360*(bb-a4)/bb);if(a4===0){aZ(a8(Q,"next"))}a4--}function a8(w,h){var t=w;t+=(h=="prev"?-1:1);t%=ba.length;if(t<0){t+=ba.length}return t}function k(t){var h=parseInt(t.currentTarget.id,10);P=h>=Q?"next":"prev";aZ(h);return false}function aI(){var bh;var t;if(e){clearTimeout(e)}for(var bi=0;bi<ba.length;bi++){bh=ba[bi].caption;if(bh){bh.width(a5);t=false;var bk=bh.find(".peKb_real");var w=bh.find(".peKb_background");if(bh==aK){bk.stop().css("margin-left",0).css("opacity",1);w.stop().css("margin-left",0).css("opacity",0.5);t=true}var h;var bj;if(an){h=a5-2*O}else{bk.width("auto");w.width("auto");h=bk.outerWidth()}bj=bk.outerHeight();w.width(h).height(bj).data("width",h);bh.width(h).height(bj);bh.css("margin-left",(a5-w.width())/2);bh.css("margin-top",(bd-w.height()-O-(y?(E-10):0)));if(!t){bk.fadeOut(0);w.fadeOut(0)}}}L=true}function aY(t,bi){var bj=c(bi).attr("id",t);var bh=bj.find(" > h1,h2,h3,h4,p").detach();if(al&&bh.length>0){bh.wrap('<div class="peKb_real" />');bh=bh.parent();bh.wrap('<div class="peKb_holder" />');bh=bh.parent();bh.append('<div class="peKb_background" />');al.append(bh);bh.find(".peKb_real").fadeOut(0);bh.find(".peKb_background").fadeOut(0)}else{bh=false}var h=bj.find("img").attr({id:t})[0];var w=bj.attr("data-thumb");ba[t]={caption:bh,resource:h,thumb:w};if(C){C.append('<li><a href="#" '+(t===0?'class="peKb_currentSlide"':"")+' id="'+t+'">1</a></li>')}}function m(){ao.empty();r=false;if(!n){X=false}}function o(h){if(y){if(c.browser.msie){aG[h?"show":"hide"]()}else{aG.stop().fadeTo(300,h?1:0,"easeOutCubic")}am(!h)}else{var t={};t[ai]=(h?0:-E);aG.stop().animate(t,300,"easeOutCubic")}}function am(h,t){if(!I){return}a9=!h;if(!h){aV(false)}t=t==null?300:t;I.stop();if(!y&&r){o(h)}aC.hide();ax=true;if(y){a9=false;if(!(c.browser.msie&&c.browser.version<8)){f.css("z-index",h?209:0);if(h&&ac){J.before(f.filter(".peKb_shadow").css("z-index","0"))}}if(h){f.find(".peKb_holder").show();av()}else{f.find(".peKb_holder").hide()}}else{I.animate({"margin-top":(h?0:-E)},{duration:t,easing:"easeOutCubic",complete:av})}}function g(){o(true)}function aM(){o(false)}function bf(h){am(true,h)}function W(h){am(false,h)}function q(t){if(r){if(B){B.destroy();B=undefined}if(t){ao.empty();r=false}else{ao.css("background-color","none");ao.fadeOut(500,m);bc.fadeIn(0);aM()}var h=ak.filter(".peKb_active").find("img:eq(0)").data("peKenburnsImg");if(h){h.resume()}}return false}function be(t){var h=c(t.currentTarget);if(h.hasClass("video")){v(h[0].href,h.hasClass("hd"),h.hasClass("autoplay"),h.hasClass("loop"),h.hasClass("skiptonext"));return false}return true}function v(t,bk,w,h,bj){if(r){return false}var bl,bi;if((bl=t.match(/http:\/\/www.youtube.com\/watch\?v=([\w|\-]+)/))){bi="youtube"}else{if((bl=t.match(/http:\/\/vimeo.com\/(\w+)/))){bi="vimeo"}}if(bi){q();r=true;X=true;var bh=ak.filter(".peKb_active").find("img:eq(0)").data("peKenburnsImg");if(bh){bh.pause()}ao.css("background-color",H);ao.fadeIn(500);g();bc.fadeOut(0);B=ao.peVideo({api:true,width:a5,height:bd,type:bi,videoId:bl[1],hd:bk,autoPlay:w,loop:h});if(bj){c(B).bind("pixelentity.video_ended",aH)}}}function aH(){c(B).bind("pixelentity.video_ended",aH);aZ(a8(Q,"next"))}function aP(){var h=p.find("a.video");if(h.length>0){h.trigger("click")}}function ay(){au=false;s.hide()}function aV(h,t){if(!aR||!s){return}if(h){s.stop(true);if(aW){s.fadeTo(500,1,"easeOutQuad")}else{s.show()}}else{if(parseInt(t,10)>0){s.delay(t)}else{s.stop(true)}if(aW){s.fadeTo(300,0,"easeOutQuad",ay)}else{s.queue(ay)}}}function ar(h){if(h.type=="error"){ay();return}l.html(T);if(Y.attr("data-thumb")!="fixed"){T.peKenburnsImg({zoom:"in",align:"top,center",pan:"center,center",duration:"10"})}l.stop(true).fadeTo(0,0).fadeTo(300,1,"easeInQuad")}function N(h){if(ad){ad.triggerHandler(h.type)}}function S(bi){var h=bi.currentTarget.id;switch(bi.type){case"mouseenter":var w=ba[h].thumb;if(!w){return}aR=true;aV(true);var t=c(bi.currentTarget).width();var bh=c(bi.currentTarget).offset();bh.top=Y.offset().top+bd+a2-s.height()+13;if(y){bh.top-=E-10}bh.left=bh.left-(s.width()-t)/2;if(au!=w){if(T.data("peKenburnsImg")){T.data("peKenburnsImg").destroy()}T=c("<img>");l.html("");T.one("error",ar).one("load",ar);T.attr("src",w)}s.offset(bh);au=w;break;case"mouseleave":aV(false,200);break}}function aq(){var h;if(p){h=p.find("img:eq(0)");if(h){h=h.data("peKenburnsImg")}}return h||false}c.extend(aL,{init:function(bh){if(c.browser.msie){ak.find("img[src*='blank.png']").replaceWith(function(){var bi=c("<img>");return bi.attr("data-src",c(this).attr("data-src"))[0]}).end()}if(c.browser.msie&&c.browser.version>8){ak.find("img").each(function(){var bi=c(this);if(!bi.attr("data-src")){bi.attr("data-src",bi.attr("src"));bi.removeAttr("src")}}).end()}ao.width(a5).height(bd);bc.width(a5).height(bd);ak.width(a5).height(bd).show().fadeOut(0).removeClass("peKb_active").find("img[src*='blank.png']").removeAttr("src").end().find("a").click(be).end().each(aY).end();if(aa&&I){I.css("margin-left",(V-I.width())/2);if(y){if(c.browser.msie&&c.browser.version<8){f.filter(".peKb_shadow").css("z-index","-1")}aG.css("z-index",204);aG.css("position","absolute");aG.css("margin-left",0);aG.css("margin-top",-ab+aG.height()+a2);aG.css("margin-left",a2);aG.detach();aj.append(aG);aG=aj.find(".peKb_videoClose");aG.addClass("peKb_videoCloseInner")}}if(aE.externalFont){e=setTimeout(aI,10000)}else{aI()}if(C){var h=C.find("a");h.click(k);if(s){h.bind("mouseenter",S).bind("mouseleave",S);aC.bind("mouseenter",N).bind("mouseleave",N)}}if(flashEnabled){bc.hide().click(aP)}var w=true;var t=Y.attr("data-controls");if(at){t=(t=="over"||t=="hideOnFirst")?"always":t}switch(t){case"over":W(0);break;case"hideOnFirst":aT=true;break;case"disabled":W(0);w=false;break;default:w=false;break}if(w){Y.bind("mouseenter",aB).bind("mouseleave",aB)}X=true;a0=setInterval(aN,50);aL.start()},start:function(){X=an;aZ(0)},fontsLoaded:function(){aI();z(Q)},pauseTimer:function(){X=true},resumeTimer:function(){X=false},pause:function(){var h=aq();h&&h.pause();aL.pauseTimer()},resume:function(){var h=aq();h&&h.resume();aL.resumeTimer()},prev:function(){aL.resumeTimer();aZ(a8(Q,"prev"))},next:function(){aL.resumeTimer();aZ(a8(Q,"next"))},show:function(h){aL.resumeTimer();h=parseInt(h,10)-1;if(h>=0&&h<ba.length){aZ(h)}},length:function(){return(ba&&ba.length)||0},destroy:function(){var h;q();ak.each(function(){h=c(this).find("img:eq(0)");if((h=h.data("peKenburnsImg"))){h.destroy()}});h=undefined;clearInterval(a0);aL=undefined;if(B){B.destroy();B=undefined}aj.data("peKenburnsSlider",null);aj.remove();aj=undefined}});if((!Y.width())&&(!Y[0].width)){Y.one("load",aL.init)}else{aL.init()}}c.fn.peKenburnsSlider=function(d){var e=this.data("peKenburnsSlider");if(e){e.start();return e}d=c.extend(true,{},c.pixelentity.kenburnsSlider.conf,d);this.each(function(){e=new a(c(this),d);c(this).data("peKenburnsSlider",e)});return d.api?e:this}})(jQuery);
