activeFilterFields = new Array();
var filterButtonActive = false;

var activeClipItems = new Array();
/** Generic function to validate search fields
 * @param field 	the field which needs to be validated
 */
function validateSearchField(field) {
	activeItems = new Array();
	errors = 0;
	themes = 0;
	// Check the active fields
	var items = getElementsByClass('search_field filter');
	
	for (var i = 0; i < items.length; i++) {
		
		if (items[i].id== 'theme_list')
			continue;
		
		if (items[i].style.display == 'block')  
			activeItems.push(items[i]);
					
	}
	
	/*
	var re = /filter_off/;
	var imgName = $("button_filter").getStyle('background-image');
	var isfilter = imgName.match(re);
	if(isfilter==null)
		document.getElementById('isfilter').value = "y";
	*/
		
	for (var i = 0; i < activeItems.length; i++) {		
		if (document.getElementById(activeItems[i].id).value == '') {
			Effect.Pulsate(document.getElementById(activeItems[i].id),{duration:1, pulses: 2});
			errors++;
		}
	}
	
	/*	
	if (document.getElementById('theme_list').style.display == 'block') {
		checkboxes = document.getElementsByName('theme');
		activeItems++;
		document.getElementById('theme_list').value = '';
		for (i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].checked == true) {
				themes++;
				document.getElementById('theme_list').value += checkboxes[i].id + '.';	
			}
		}
		if (themes == 0) {
			Effect.Pulsate(document.getElementById('theme_list'),{duration:1, pulses: 2});
			errors++;
		}
		
	}
	
	if (document.getElementById('theme_list_filter').style.display == 'block') {
		checkboxes = document.getElementsByName('theme');
		activeItems++;
		document.getElementById('theme_list_filter').value = '';
		for (i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].checked == true) {
				themes++;
				document.getElementById('theme_list_filter').value += checkboxes[i].id + '.';	
			}
		}
		if (themes == 0) {
			Effect.Pulsate(document.getElementById('theme_list_filter'),{duration:1, pulses: 2});
			errors++;
		}
		
	}	
	// If there are no filters set, you need to have a keyword
	if (activeItems.length == 0 && document.getElementById(field).value == '') {
		Effect.Pulsate(document.getElementById(field),{duration:1, pulses: 2});
		errors++;
	}
	*/
	
	if (activeItems.length == 0 && document.getElementById('keywords').value == '') {
		Effect.Pulsate(document.getElementById(field),{duration:1, pulses: 2});
		errors++;
	}
	
	if (errors == 0) {
		
		// Pre submit check
		for (var i = 0; i < items.length; i++) {
			if (filterButtonActive == false) {
				items[i].value = '';
			}
			else {
				if (items[i].style.display != 'block')
					items[i].value = '';
			}
		}
		
		/*
		if (themes > 0)
			document.getElementById('themes').value = document.getElementById('theme_list').value;
			
		if (document.getElementById('theme_list_filter').style.display == 'block') {
			document.getElementById('themes').value = document.getElementById('theme_list_filter').value;
		}
		*/
				
		document.forms['form_free_text_search'].submit();
	}
	
}

function validateExtendedSearch() {

	var selObj = document.getElementById('s_query_country');
	var selIndex = selObj.selectedIndex;
	var country = selObj.options[selIndex].text;
	
	document.getElementById('query_country').value = country;
	
	selObj = document.getElementById('s_query_city');
	
	if(selObj.selectedIndex == -1){
		//alert(selObj.selectedIndex);
		city = '';		
	} else {
		selIndex = selObj.selectedIndex;
		city = selObj.options[selIndex].text;	
	}
	
	if(city!='------------------')
		document.getElementById('query_city').value = city;
	else
		document.getElementById('query_city').value = '';
					
		
	var checkboxes = document.getElementsByName('theme');
	var themes = 0;
	var theme_list = '';
	for (i = 0; i < checkboxes.length; i++) {
		if (checkboxes[i].checked == true) {
			themes++;
			theme_list += checkboxes[i].id + '.';	
		}
	}
	document.forms['form_free_text_search'].themes.value = theme_list;
	document.forms['form_free_text_search'].submit();
}


function submitenter(myfield,e) {
	var keycode;
	if (window.event) 
		keycode = window.event.keyCode;
	else if (e) 
		keycode = e.which;
	else 
		return true;
	
	if (keycode == 13) {
	   validateSearchField(myfield.id)
	   return false;
	}
	else
	   return true;
}


function switchLanguageMenu(state) {
	if (state == true) {
		document.getElementById('available_languages').style.visibility = 'visible';
	} else {
		document.getElementById('available_languages').style.visibility = 'hidden';
	}
}

function switchCountryMenu(state) {
	if (state == true) {
		document.getElementById('available_countries').style.visibility = 'visible';
	} else {
		document.getElementById('available_countries').style.visibility = 'hidden';
	}
}
function switchVideoMenu(state) {
	if (state == true){
		document.getElementById('available_videos').style.visibility = 'visible';
	} else {
		document.getElementById('available_videos').style.visibility = 'hidden';
	}
}

function moveClipsLeft(myclass) {
	
	
	// Get all clips
	var items = getElementsByClass('clip_item_horizonal hidden '+ myclass);
	var hidden_items = getElementsByClass('clip_item_horizonal '+ myclass);
	
	var all_items = items.length + hidden_items.length;
	
	for (var i = 1; i <= all_items; i++) {
		
		var new_id = (i-1) == 0 ? all_items : i-1;
		
		if (i == 1) {
			temp_item = document.getElementById(myclass + '_' + i).innerHTML;
			continue;
		}
		document.getElementById(myclass + '_' + new_id).innerHTML = document.getElementById(myclass + '_' + i).innerHTML;
	}
	
	document.getElementById(myclass + '_' + all_items).innerHTML = temp_item;
}

function moveClipsRight(myclass) {
	
	// Get all clips 
	var items = getElementsByClass('clip_item_horizonal hidden '+ myclass);
	var hidden_items = getElementsByClass('clip_item_horizonal '+ myclass);
	
	var all_items = items.length + hidden_items.length;
		
	for (var i = all_items; i > 0; i--) {
		
		var new_id = (i-1) == (0) ? all_items : i-1;
		
		if (i == all_items) {
			temp_item = document.getElementById(myclass + '_' + i).innerHTML;
		}
		
		document.getElementById(myclass + '_' + i).innerHTML = document.getElementById(myclass + '_' + new_id).innerHTML;
		
	}
	
	document.getElementById(myclass + '_' + 1).innerHTML = temp_item;
}

function moveClipsDown(myclass) {

	var items = getElementsByClass('clip_item_vertical hidden ' + myclass);
	var hidden_items = getElementsByClass('clip_item_vertical ' + myclass);
		
	var all_items = items.length + hidden_items.length;
	var new_id;
	for (var i = all_items; i > 0; i--) {
		
		if(i>1){
			new_id = i - 1;
		} else {
			document.getElementById(myclass + '_' + 1).innerHTML = temp_item;
		}
					
		if (i == all_items) {		
			temp_item = document.getElementById(myclass + '_' + i).innerHTML;
		}
		
		document.getElementById(myclass + '_' + i).innerHTML = document.getElementById(myclass + '_' + new_id).innerHTML;
		
	}
		
}

function moveClipsUp(myclass) {
	
	var items = getElementsByClass('clip_item_vertical hidden ' + myclass);
	var hidden_items = getElementsByClass('clip_item_vertical ' + myclass);
		
	var all_items = items.length + hidden_items.length;
	var new_id;
	for (var i = 1; i <= all_items; i++) {
		
		if (i == 1) {
			temp_item = document.getElementById(myclass + '_' + i).innerHTML;
		}
		
		if(i<all_items){
			new_id = i + 1;
		} else {
			document.getElementById(myclass + '_' + all_items).innerHTML = temp_item;
		}
		
		document.getElementById(myclass + '_' + i).innerHTML = document.getElementById(myclass + '_' + new_id).innerHTML;
	}
	
}


function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function theme_search_toggle(){
	$('theme_search').toggle();
	$('keyword_search').toggle();
}

/* Search functions */
function toggleFilter(filterField, buttonTitleActive, buttonTitleInactive) {
	// Get all items
	var items = getElementsByClass('search_field filter');
	
	// Reset all fields, buttons
	if (filterField == 'all') {
		if (document.getElementById('mainfilter').style.display == 'block') {	
			document.getElementById('mainfilter').style.display = 'none';
			for (i = 0; i < items.length; i++) {
				document.getElementById(items[i].id).style.display = 'none';
				//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_off.jpg)';
				document.getElementById('button_filter').innerHTML = buttonTitleInactive;
				//document.getElementById('open_button_filter').innerHTML = buttonTitleInactive;
			}
		}
		else {
			document.getElementById('mainfilter').style.display = 'block';
			filterButtonActive = true;
			//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_on.gif)';
			for (i = 0; i < items.length; i++) {
				document.getElementById(items[i].id).style.display = 'block';
				//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_on.gif)';
				document.getElementById('button_filter').innerHTML = buttonTitleActive;
				//document.getElementById('open_button_filter').innerHTML = buttonTitleActive;
			}
			
			
			// check to load ajax values or current country values
			if(document.getElementById('query_country').style.display == 'block'){
				if(document.getElementById('query_country').value != ''){
					if(parseInt(document.getElementById("theme_list_filter").innerHTML.length) > 20){
						document.getElementById('theme_list_filter').style.display = 'block';
						document.getElementById('theme_list').style.display = 'none';
					} else {
						document.getElementById('theme_list').style.display = 'block';
						document.getElementById('theme_list_filter').style.display = 'none';
					}
				}
			}
		}	
	}
	else if (document.getElementById(filterField).style.display == 'block') {
		var filtersActive = false;
		
		// Disable the field
		document.getElementById(filterField).style.display = 'none';
		
		// Check if one or more filters are still acitve, if not, reset the button
		for (i = 0; i < items.length; i++) {
			if (document.getElementById(items[i].id).style.display == 'block') {
				filtersActive = true;
				break;
			}
		}
		if (filtersActive == false) {
			//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_off.jpg)';
			document.getElementById('button_filter').innerHTML = buttonTitleInactive;
			filterButtonActive = false;
			document.getElementById('mainfilter').style.display = 'none';
		}
		
	}
	else {
		// Enable the field
		document.getElementById(filterField).style.display = 'block';
		
		// Change the button
		//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_on.gif)';
		document.getElementById('button_filter').innerHTML = buttonTitleActive;
		filterButtonActive = true;
	}
	
	if(filterField == "query_country"){
		if(document.getElementById('query_country').style.display == 'block'){
			refreshThemes();
			
			if(document.getElementById('theme_list').style.display == 'block' || document.getElementById('theme_list_filter').style.display == 'block'){
				if(document.getElementById('query_country').value == ''){
					document.getElementById('theme_list').style.display = 'block';
					document.getElementById('theme_list_filter').style.display = 'none';
				} else {
					
					if(parseInt(document.getElementById("theme_list_filter").innerHTML.length) > 20){
						document.getElementById('theme_list_filter').style.display = 'block';
						document.getElementById('theme_list').style.display = 'none';
					} else {
						document.getElementById('theme_list').style.display = 'block';
						document.getElementById('theme_list_filter').style.display = 'none';
					}
				}
				
			}
		}
		else{
			if(document.getElementById('theme_list_filter').style.display == 'block'){
				document.getElementById('theme_list_filter').style.display = 'none';
				document.getElementById('theme_list').style.display = 'block';
			}
		}
	}
	
	if(filterField == "theme_list"){
		if(document.getElementById('theme_list').style.display == 'block' && document.getElementById('theme_list_filter').style.display == 'block'){
			document.getElementById('theme_list_filter').style.display = 'none';
			document.getElementById('theme_list').style.display = 'none';
		}
		else if(document.getElementById('theme_list').style.display == 'block' || document.getElementById('theme_list_filter').style.display == 'block'){
			if(document.getElementById('query_country').style.display == 'block'){
				if(document.getElementById('query_country').value != ''){
					if(parseInt(document.getElementById("theme_list_filter").innerHTML.length) > 20){
						document.getElementById('theme_list_filter').style.display = 'block';
						document.getElementById('theme_list').style.display = 'none';
					} else {
						document.getElementById('theme_list').style.display = 'block';
						document.getElementById('theme_list_filter').style.display = 'none';
					}
				}
			}
		}
		
		if(document.getElementById('query_country').style.display == 'block'){
			if(document.getElementById('query_country').value != ''){
				if(document.getElementById('theme_list').style.display == 'block' || document.getElementById('theme_list_filter').style.display == 'block'){
					if(parseInt(document.getElementById("theme_list_filter").innerHTML.length) > 20){
						document.getElementById('theme_list_filter').style.display = 'block';
						document.getElementById('theme_list').style.display = 'none';
					}
				}
			}
		}
		
		
		
	}
}

function refreshThemes(){
	
	var url = 'ajax/countryfilter?query_country=' + $('query_country').value;
	
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
		var filteredThemes = $('theme_list_filter');
		filteredThemes.innerHTML = '';
		filteredThemes.update(transport.responseText);
		if (200 == transport.status){
			doFilterCheck();
		}

		}
	});
	
}

function doFilterCheck(){
	// if theme list is open and records are found in ajax then load theme_list_filter div
	if(document.getElementById('theme_list').style.display == 'block'){
		
		if(document.getElementById('query_country').style.display == 'block'){
			if(document.getElementById('query_country').value != ''){
				if(parseInt(document.getElementById("theme_list_filter").innerHTML.length) > 20){
					document.getElementById('theme_list_filter').style.display = 'block';
					document.getElementById('theme_list').style.display = 'none';
				}
			}
		}
	}
	
}

/* Search functions */
function toggleFilterAjax(filterField, buttonTitleActive, buttonTitleInactive) {
	
	// Get all items
	var items = getElementsByClass('search_field filter');
	
	
	
	// Reset all fields, buttons
	if (filterField == 'all') {
		for (i = 0; i < items.length; i++) {
			Effect.BlindUp(document.getElementById(items[i].id));
			//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_off.jpg)';
			document.getElementById('button_filter').innerHTML = buttonTitleInactive;
		}
		activeFilterFields = new Array();
	}
	else if (activeFilterFields[filterField] != undefined && activeFilterFields[filterField] == true) {
		var filtersActive = false;
		
		// Disable the field
		Effect.BlindUp(document.getElementById(filterField));
		activeFilterFields[filterField] = false;
		
		// Check if one or more filters are still acitve, if not, reset the button
		for (i = 0; i < activeFilterFields.length; i++) {
			if (activeFilterFields[i] == true) {
				filtersActive = true;
				break;
			}
		}
		if (filtersActive == false) {
			//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_off.jpg)';
			document.getElementById('button_filter').innerHTML = buttonTitleInactive;
		}
		
	}
	else {
		// Enable the field
		Effect.BlindDown(document.getElementById(filterField));
	
		activeFilterFields[filterField] = true;
		
		// Change the button
		//document.getElementById('button_filter').style.backgroundImage = 'url(images/buttons/button_filter_on.gif)';
		document.getElementById('button_filter').innerHTML = buttonTitleActive;
	}
	
	// Remove the border (labels)
	this.blur();
}



function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}

function overlayPlay(imageid, state) {
	//current_image = document.getElementById('clip_' + imageid);
	// Clear all previous images
	for (var i = 0; i < activeClipItems.length; i++) {
		if(document.getElementById('play_' + activeClipItems[i]))
			document.getElementById('play_' + activeClipItems[i]).style.display = 'none';
	}
		
	if (document.getElementById('play_' + imageid) != null) {
		document.getElementById('play_' + imageid).style.display = state;
		activeClipItems.push(imageid);
	}
		
	//alert(activeClipItems.length);
	
}

// open_window javascript
w_openwindow = null;
function open_window(nurl,windowname,width,height, leftPos, topPos, scrollbars, resizable, newwindow) {
	if (typeof leftPos == 'undefined' || leftPos < 0) leftPos = (self.screen.width-width-25)/2;
	if (typeof topPos == 'undefined' || topPos < 0) topPos = (self.screen.height-height-25)/2;	
	if (typeof newwindow == 'undefined') newwindow = 0;
	scrollbars = typeof scrollbars == 'undefined' ? 'yes' : 'no';
	resizable = typeof resizable == 'undefined' ? 'yes' : 'no';
	if (newwindow)
	 	window.open(nurl, windowname,'width='+width+',height='+height+',left='+leftPos+',top='+topPos+',directories=no,location=no,menubar=no,scrollbars='+scrollbars+',status=yes,toolbar=no,resizable='+resizable);
	else
		w_openwindow = window.open(nurl, windowname,'width='+width+',height='+height+',left='+leftPos+',top='+topPos+',directories=no,location=no,menubar=no,scrollbars='+scrollbars+',status=yes,toolbar=no,resizable='+resizable);
}

function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){
		isIE = true;
		/* Create the object using MSIE's method */
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		/* Create the object using other browser's method */
	request_o = new XMLHttpRequest();
	}
	return request_o; //return the object	
}

function getURLParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function checkHeight(){
	/*
	if($("theme_list").style.display == 'block'){
		$('box_content').setStyle({ height: '816px' });
	} else {
	*/
	
	if(document.getElementById("detail_view")){
		var h1 = $('detail_view').getStyle('height').replace(/px/, "");
		var h2 = $('media_container').getStyle('height').replace(/px/, "");
		var myheight = parseInt(h1) + parseInt(h2);
			
		$('box_content').setStyle({ height: myheight });
	}
	//}

}


function checkInput(doc, errmsg, errcolor, validcolor, errbg, validbg, type)
{
	var inputs = $$('.required');

	//defaults
	var focused = false;
	
	if(errmsg == undefined) errmsg = '&nbsp;'; // set emtpy error message
	if(errcolor == undefined) errcolor = '#fff'; // set error color
	if(errbg == undefined) errbg = '#fff'; // set error background
	if(validcolor == undefined) validcolor = '#b4babc'; // set valid color
	if(validbg == undefined) validbg = '#ffffff'; // set valid background color
	
	var iserror = 0;
	var gerror = 0;
	
	
	for (var index = 0; index < inputs.length; ++index) {
		
		var item = inputs[index];
		var inputValue = item.value;
		var titleValue = item.getAttribute('title');
		iserror = 0;
		
		// reset colors
		item.setStyle({ backgroundColor: validbg, borderColor: validcolor });
		
		if(titleValue == 'email' || titleValue == 'shipping_email') {
			
			if (inputValue == '' || inputValue.length < 6 || (inputValue.indexOf("@") < 1)  || (inputValue.indexOf(".") < 1) ) {
				iserror = 1; 
				gerror += 1; 
			}
		}
		else if(titleValue != '' && inputValue == '') {			
			iserror = 1; 
			gerror += 1; 
		}
		
		if(iserror==1){
			item.setStyle({ backgroundColor: errbg });
			item.setStyle({ border: '1px solid #a5acb2' });
			Effect.Pulsate(item,{duration:1, pulses: 2});
			
			if(!focused) item.focus();
				focused = true;
		}
	}
	
	if(gerror > 0){
		if($('errormsg')) {
			$('errormsg').innerHTML = errmsg;
		}
	}
	
	if (gerror == 0) {
		if (type == 'return')
			return true;
		else
			$(doc).submit();
	}	
}

// get url parameter
function gup(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
