function testFields(){
	var child = document.getElementById("moreUploads");
	var parent = child.parentNode;
	var allUploadFields = getElementsByClassName(parent,"input","uploadField");	
	for (var i=0;i<allUploadFields.length;i++){		
		if (allUploadFields[i].value) {			
			document.eventmedia.submit();
			return true;
		}				
	}
	alert("Select at least one image for uploading");
	return false;	
}

function addMore() {
	var child = document.getElementById("moreUploads");
	var parent = child.parentNode;
	var allUploadFields = getElementsByClassName(parent,"input","uploadField");
	
	var oneUpload = document.createElement("div");
	oneUpload.className = "oneUpload";
	oneUpload.innerHTML='<input type ="file" class="uploadField" heright="100" name="media'+(allUploadFields.length+1)+'" size=60>';
	parent.insertBefore (oneUpload,child);
}


function changeTabs (obj) {
	var className=obj.className;
	className = className.replace(/selected/g,'');
	var objs = getElementsByClassName (obj.parentNode,"li",className);
	for (var i=0;i<objs.length;i++)
		objs[i].className=className;
	obj.className+=" selected";
	var id=obj.id.substring(1);
	document.getElementById("type").value=id;
}

function findPosition(elemObj) {
	var position = {top: 0, left: 0};
	var nodeObj = elemObj;
	
	while (nodeObj.tagName != 'HTML') {
		position.top += nodeObj.offsetTop || 0;
		position.left += nodeObj.offsetLeft || 0;
		
		if (nodeObj.offsetParent) {
			nodeObj = nodeObj.offsetParent;
		} else {
			break;
		}
	}
	return position;
}

function findSize(elem) {
  if (elem.style.pixelHeight) {
    return {
      height:elem.style.pixelHeight,
      width:elem.style.pixelWidth
    }
  } 
  else {
    return {
      height:elem.offsetHeight,
      width:elem.offsetWidth
    }
  }
}

function posXY(e) {
	var pos = {x:0, y:0};
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		pos.x = e.pageX;
		pos.y = e.pageY;
	}
	
	else if (e.clientX || e.clientY) 	{
		pos.x = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		pos.y = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	
	return pos;
}

function browserSize() {
	//find width/height of browser
	var browserWidth = 0;
	var browserHeight = 0;
	
	// Standard browsers (Mozilla, Safari, etc.)
	if (self.innerHeight) {
		browserHeight =  self.innerHeight;
		browserWidth = self.innerWidth;
	
	}
	//IE6
	if (document.documentElement && document.documentElement.clientHeight) {
		browserHeight = document.documentElement.clientHeight;
		browserWidth = document.documentElement.clientWidth;
	// IE 5
	}else if (document.body) {
		browserHeight =  document.body.clientHeight;
		browserWidth = document.body.clientWidth;
	}
		
		
	return {
		width:browserWidth,
		height:browserHeight
	}
}

//find scroll value from top and left

function getScrollingPosition() {
	var x = 0;
	var y = 0;
	if (typeof window.pageYOffset != 'undefined') {
			x = window.pageXOffset;
			y = window.pageYOffset;
	} else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) {
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	} else if (typeof document.body.scrollTop != 'undefined') {
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	
	return {
		left:x,
		top:y
	}
}


function displayDate() {
	if (document.getElementById("drop_date_container").style.display!="block") {
	
		//document.getElementById("drop_date_container").style.display="block";
		var searchBox =  document.getElementById("SearchBarToursRight");
		
		var position = findPosition (searchBox);
		var size = findSize (searchBox);
		var drop = document.getElementById("drop_date_container");
		drop.style.display="block";
		drop.style.position="absolute";
		drop.style.zIndex="100";
		drop.style.top=position['top']+size['height']+"px";
		drop.style.left=position['left']+"px";
		firstTime=0;
		initCalendar();
		setTimeout("document.onclick=addListenerDrop",0);
	}
}

function addListenerDrop(e) {
	var target = (e && e.target) || (event && event.srcElement);
	var parent = checkParentInside(target,"searchinputRight");
	if (parent) parent = checkParentInside(target,"drop_date_container");
	if (parent) {
		closeOptionsDate();
	}
}

function closeOptionsDate() {
	document.getElementById("drop_date_container").style.display = "none";
	document.onclick="";
}

function showCalendar(obj) {
	document.onclick= "";
	if (document.getElementById("overMap")) {
		var overMap = document.getElementById("overMap");
		overMap.parentNode.removeChild(overMap);
	}
	var id = obj.id;
	id = id.substring(1);
	var objPos = findPosition(obj);
	var objSize = findSize(obj);
	var left = objPos['left']+objSize['width'];
	var calendarDiv = document.getElementById("cal1Container");
	calendarDiv.style.left = left+5+"px";
	calendarDiv.style.top = objPos['top']+objSize['height']+5+"px";
	calendarDiv.style.display="block";
	//
	var date_type_selected = whatChecked();
	if (date_type_selected=="sbt_upcoming" && obj.id=="_from_date") hideCalendar();
	
	if (date_type_selected=="sbt_upcoming" && obj.id=="_to_date"){
		var today = getToday();
		var strToday=today['month']+"/"+today['day']+"/"+today['year'];
		YAHOO.example.calendar.cal1.cfg.setProperty("mindate"); 
		YAHOO.example.calendar.cal1.cfg.setProperty("maxdate");
		YAHOO.example.calendar.cal1.reset();
		YAHOO.example.calendar.cal1.cfg.setProperty("mindate",strToday);
		YAHOO.example.calendar.cal1.cfg.setProperty("pagedate",today['month']+"/"+today['year']);
		YAHOO.example.calendar.cal1.render();
	}
	
	if (date_type_selected=="sbt_archive" && obj.id=="_to_date") hideCalendar();
	
	if (date_type_selected=="sbt_archive" && obj.id=="_from_date") {
		var today = getToday();
		var strToday=today['month']+"/"+today['day']+"/"+today['year'];
		YAHOO.example.calendar.cal1.cfg.setProperty("mindate"); 
		YAHOO.example.calendar.cal1.cfg.setProperty("maxdate"); 
		YAHOO.example.calendar.cal1.reset();
		YAHOO.example.calendar.cal1.cfg.setProperty("maxdate",strToday); 
		YAHOO.example.calendar.cal1.cfg.setProperty("pagedate",today['month']+"/"+today['year']);
		YAHOO.example.calendar.cal1.render();
	}
	
	if (date_type_selected=="sbt_range"){
		var today = getToday();
		YAHOO.example.calendar.cal1.cfg.setProperty("mindate"); 
		YAHOO.example.calendar.cal1.cfg.setProperty("maxdate");
		YAHOO.example.calendar.cal1.reset();
		YAHOO.example.calendar.cal1.cfg.setProperty("pagedate",today['month']+"/"+today['year']);
		YAHOO.example.calendar.cal1.render();
	}
	//
	
	if (document.getElementById("mapbox")) {
		var mapBox = document.getElementById("mapbox");
		var mapPos = findPosition (mapBox);
		var mapSize = findSize (mapBox);
		var arrBody = document.getElementsByTagName("body");
		//create a new div
		var overMap = document.createElement("div");
		overMap.id = "overMap";
		overMap.style.position = "absolute";
		overMap.style.top = mapPos['top']+"px";
		overMap.style.left = mapPos['left']+"px";
		overMap.style.width = mapSize['width']+"px";
		overMap.style.height = mapSize['height']+"px";
		overMap.style.background = "white";
		overMap.style.opacity = 0;
		overMap.style.filter = "alpha(opacity=0)";
		overMap.style.zIndex = 10;
		arrBody[0].appendChild(overMap);
			
	}
	
	document.getElementById("from_to").value=id;
	captureDays();
	setTimeout("document.onclick = checkInside",100);
}

function captureDays() {
	//add function to selectEvent
	YAHOO.example.calendar.cal1.selectEvent.subscribe(selectDate);
}

function selectDate() {
	var arrDates = YAHOO.example.calendar.cal1.getSelectedDates();
	for (var i=0;i<arrDates.length;i++)
		var date = arrDates[0];
	var displayMonth = date.getMonth() + 1; 
	var displayYear = date.getFullYear(); 
	var displayDate = date.getDate();
	
	//input text selected from_date or end_date
	var from_to = document.getElementById("from_to").value;
	document.getElementById(from_to).value=displayMonth+"/"+displayDate+"/"+displayYear;
	setTimeout("hideCalendar()",200);
	
	//start validation start date < end date
	if (from_to == "to_date") {
		var startDate = document.getElementById("from_date").value;
	}
	
	if (from_to == "from_date") {
		var startDate = document.getElementById("to_date").value;
	}
	if (startDate.indexOf("m")>=0) { 
		document.getElementById("from_date").value = document.getElementById(from_to).value;
	} else {
		var tempPos = startDate.indexOf("/");
		var startMonth = startDate.substring(0,tempPos);
		startDate = startDate.substring(tempPos+1);
		tempPos = startDate.indexOf("/",tempPos);
		var startDay = startDate.substring(0,tempPos);
		startDate = startDate.substring(tempPos+1);
		var startYear = startDate;
	}
	
	if (from_to == "to_date") {
		if ( (startYear>displayYear) || (startYear<=displayYear && startMonth>displayMonth) || (startYear<=displayYear && startMonth==displayMonth && startDay>displayDate) ) document.getElementById("from_date").value = displayMonth+"/"+displayDate+"/"+displayYear;
	}
	
	if (from_to == "from_date") {
		if ( (startYear<displayYear) || (startYear>=displayYear && startMonth<displayMonth) || (startYear>=displayYear && startMonth==displayMonth && startDay<displayDate) )
			document.getElementById("to_date").value = displayMonth+"/"+displayDate+"/"+displayYear;
	}
	
	//end validation
	setTimeout("document.onclick=addListenerDrop",500);
}

function showRange(id) {
		document.getElementById(id).style.display="block";
		initCalendar();
		hideCalendar();
		
}

function hideRange(id) {
		document.getElementById(id).style.display="none";
		hideCalendar();
		initCalendar();
		hideCalendar();
		
}

function hideCalendar() {
	document.getElementById('cal1Container').style.display='none';
	if (document.getElementById("overMap")) {
		var overMap = document.getElementById("overMap");
		overMap.parentNode.removeChild(overMap);
	}
}

function whatChecked() {
	var date_type = document.getElementById("search_artist").getElementsByTagName("input");
	for (var i=0;i<date_type.length;i++)
		if (date_type[i].checked) var date_type_selected = date_type[i].id;
	if (date_type_selected) return date_type_selected; else return false;
}

function initCalendar() {
	var day_mili = 86400000; //one day in miliseconds
	var date_type_selected = whatChecked();
	var today = getToday(); //give me day month and year
	var todayObj = new Date();
	var time_mili = todayObj.getTime(); //today in miliseconds;
	if (date_type_selected == "sbt_upcoming") {
		document.getElementById("from_date").value=today['month']+"/"+today['day']+"/"+today['year'];
		document.getElementById("to_date").value="mm/dd/yy";
	}
	
	if (date_type_selected == "sbt_archive") {
		time_mili = time_mili-(day_mili*14); //2 weeks in past
		todayObj.setTime(time_mili);
		var twoWeeksPast = getStringDate(todayObj);
		document.getElementById("to_date").value=today['month']+"/"+today['day']+"/"+today['year'];
		document.getElementById("from_date").value=twoWeeksPast['month']+"/"+twoWeeksPast['day']+"/"+twoWeeksPast['year'];
	}
		
	if (date_type_selected == "sbt_range") {
		time_mili = time_mili - (day_mili*14);
		todayObj.setTime(time_mili);
		var twoWeeksLast = getStringDate(todayObj);
		//document.getElementById("from_date").value=today['month']+"/"+today['day']+"/"+today['year'];
		document.getElementById("from_date").value=twoWeeksLast['month']+"/"+twoWeeksLast['day']+"/"+twoWeeksLast['year'];
		todayObj = new Date();
		time_mili = todayObj.getTime(); //today in miliseconds
		time_mili = time_mili+(day_mili*14);
		todayObj.setTime(time_mili);
		var twoWeeksNext = getStringDate(todayObj);
		document.getElementById("to_date").value=twoWeeksNext['month']+"/"+twoWeeksNext['day']+"/"+twoWeeksNext['year'];
	}
}


function getToday() {
	var today = new Date();
	var todayDay  = today.getDate();
	var todayMonth = today.getMonth()+1;
	var todayYear = today.getFullYear();
	today = {'day':todayDay,'month':todayMonth,'year':todayYear};
	return today;
}

function getStringDate(dateObj) {
	var day  = dateObj.getDate();
	var month = dateObj.getMonth()+1;
	var year = dateObj.getFullYear();
	var dateStr ={'day':day,'month':month,'year':year};
	return dateStr;
}


//some functions for hidding calendar when click outside.
//you must give id of div;
function checkInside(e){
    var target = (e && e.target) || (event && event.srcElement);
    var obj = document.getElementById('cal1Container');
    var parent = checkParentInside(target,'cal1Container');
    if(parent){
    	var calendarON = obj.style.display;
        obj.style.display='none';
        document.onclick="";
        if (document.getElementById("overMap")) {
			var overMap = document.getElementById("overMap");
			overMap.parentNode.removeChild(overMap);
		}
		
		if (document.getElementById("drop_date_container") && calendarON == "block") {
			document.getElementById("drop_date_container").style.display="none";
		}
    }
}
   
//check if user press outside of source
// t = target
//source = id of element
//if return true then user click outside, else click inside
function checkParentInside(t,source){
	    while(t.parentNode){
	        if(t==document.getElementById(source)) {
	            return false
	        }
	        t=t.parentNode;
	    }
    return true
}


function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function suggestTerm(textObj, suggestUrl,typeObj) {
	var type;
	if (typeObj) type = document.getElementById(typeObj).value;
	
	switch (type) {
		case 'city':
			suggestCity(textObj, suggestUrl, 2, 10, true, null, true);
			break;
			
		case 'venue':
			suggestVenue(textObj, suggestUrl, 2, 10, true, null, true);
			break;
			
		case 'artist':
			suggestEvent(textObj, suggestUrl, 2, 10, true, null, true);
			break;
	}
}

function focusMap(node) {
	var scroll = topOfMap-50;
	window.scrollTo(0,scroll);
	resizeMap();
}

function handleMapScroll(e) {
	if (e) {
		if (e.preventDefault) { 
			e.preventDefault(); 
			e.stopPropagation(); 
		} else { 
			e.returnValue = false; 
			e.cancelBubble = true; 
		}
	}
	
	return false;
}

function showMarker(markerKey) {
	with (top.frames['gmap']) {
		if (typeof markers[markerKey]) {
			GEvent.trigger(markers[markerKey], "click");
		}
	}
}

function showMissing() {
	with (top.frames['gmap']) {
		closeOverlay();
	}
}

var currentResult;
function highlightResult(node) {
	var id=node.id;
	id=id.substring(5);
	document.getElementById("itemp"+id).className="sr_item sr_item_on";
	clearResult();
	currentResult = document.getElementById("itemp"+id);
}

function clearResult() {
	if (currentResult) {
		currentResult.className = 'sr_item';
	}
}


function ResultManager() {
	this.parent;
	this.results = [];
	
	this.appendResult = function(node, hasCoords, markerKey) {
		if (hasCoords) {
			node.onclick = function() {
				focusMap(this);
				showMarker(markerKey);
				highlightResult(node);
				return false;
			}
			this.results.push(node);
		} else {
			node.onclick = function() {
				focusMap(this);
				showMissing();
				highlightResult(node);
				return false;
			}
		}
	}
	
	this.init = function(parent, appendClassName, missingClassName) {
		this.parent = parent;
		
		if (resultParent = document.getElementById(this.parent)) {
			resultNodes = getElementsByClassName(resultParent,"a","showMap");
			
			for (var i = 0; i < resultNodes.length; i++) {
				if (resultNodes[i].className) {
					appendNode = missingCoords = false;
					var resultClass = resultNodes[i].className.split(' ');
					for (var j in resultClass) {
						if (resultClass[j] == appendClassName) {
							appendNode = true;
						} else if (resultClass[j] == missingClassName) {
							missingCoords = true;
						}
					}
					
					if (appendNode) {
						var markerKey = resultNodes[i].id.substring(5);
						this.appendResult(resultNodes[i], !missingCoords, markerKey);
					}
				}
			}
		}
	}
}


function resizeImage(reff, to_width, to_height) {
	var width, height, to_width, to_height;
	
	width = reff.width;
	height = reff.height;
		
	if(width > 0) {
		if(width > height) {
				reff.height = to_height;
				img_ratio = (to_height / height);
				new_width = (width * img_ratio);
				reff.width = new_width;
				reff.style.marginLeft = (to_width - new_width) / 2 + "px";
		} else {
			reff.width = to_width;
			img_ratio = (to_width / width);
			new_height = (height * img_ratio);
			reff.height = new_height;
			reff.style.marginTop = (to_height - new_height) / 2 + "px";
		}
	} else {
		reff.width = to_width;
		reff.height = to_height;
	}
}

function showFeatImage(reff, featimgnr, title, commentsnr, height) {
	var imgHolder = document.getElementById('feat_img_holder');
	var imgHolderArrow = document.getElementById('feat_img_holder_arrow');
	var featImg = document.getElementById('feat_image_'+featimgnr);
	var comments_text = "";
	
	var reffPos = findPosition(reff);
	var reff_left = reffPos['left']; 
	var reff_top = reffPos['top'];
	
	var arrow_left = (reff_left - 18);
	var arrow_top = (reff_top + height/2 - 10);

	imgHolderArrow.style.left = arrow_left+"px";
	imgHolderArrow.style.top = arrow_top+"px";
	
	imgHolder.innerHTML = "<div class='image'><img src='"+featImg.src+"' id='featImage' /></div><div class='title'>"+title+"</div>";
	imgHolder.style.top = (arrow_top - ((featImg.height)/2)-10)+"px";
	imgHolder.style.left = (arrow_left - (featImg.width + 20))+"px";
	imgHolder.style.width = (featImg.width+20) + "px";
	
	
	
	document.getElementById('feat_image').style.display = "block";
}

function hideFeatImage() {
	document.getElementById('feat_image').style.display = "none";
}