/*
calc_resize.js
*/
function is_null( mixed_var ){
    return ( mixed_var === null );
}

function resize(imgWH) {
          var keepRatio=true;
          var imgWH=imgWH.split("x");
          var widthOrig=parseInt(imgWH[0], 10);
          var heightOrig=parseInt(imgWH[1], 10);
          var maxWidth=360;
          var maxHeight=360;
		var width = imageWidth = maxWidth;
		var height = imageHeight = maxHeight;
		var ratio_orig = widthOrig/heightOrig;
			if(widthOrig >= heightOrig){
				imageHeight = null;
			}
			else{
				imageWidth = null;
			}
		if(is_null(imageHeight)) {
			if(width>widthOrig){
				width = widthOrig;
			}
			height = width/ratio_orig;
		}
		else if(is_null(imageWidth)) {
			if(height>heightOrig){
				height = heightOrig;
			}
			width = height*ratio_orig;
		}
          var fixedSize = new Array (width, height);
          return fixedSize; 
}

function myTip(img,imgWH) {
     newImgWH=resize(imgWH);
     Tip('<img src="'+img+'.jpg" style="width:'+newImgWH[0]+'px;height:'+newImgWH[1]+'px;">');
}

function vote(id, countryId, categoryId){
	if(loggedIn == '1'){
		var url = '/' + cc + '/vote/add/' + id;
		new Ajax.Request(url,{
				parameters: {countryId : countryId, categoryId: categoryId},
				onSuccess: function(response){
					if(response.responseText == 'ok'){
						alert(voteAdded);
						var spans = $$('span.vote-' + response.request.parameters.countryId + '-' + response.request.parameters.categoryId);
						for(var i=0, len=spans.length; i<len; i++){
							spans[i].hide();
						}
					}
					else if(response.responseText == 'voted'){
						alert(voteAlreadyAdded);
					}
					else{
						alert(voteNotAdded);
					}
				}
			}
		);
	}
	else{
		alert(notLogged);
	}
	return false;
}

/*
comments.js
*/
function insertComment(id){
	//alert(id);
	var readOnly = false;
	area = document.getElementById('PhotoCommentText');
	if(area){
		if(area.readOnly){
			readOnly = true;
			area.readOnly = false;
		}
		position = cursorPosition(area);
		if(typeof(position) == 'number'){
			value = area.value;
			add = '++' + id + '++ ';
			if(readOnly){
				add += ' ';
			}
			area.value = value.substr(0, position) + add + value.substr(position);
			newPosition = position + add.length;

			start = value.substr(0, position);
			re = new RegExp("\r\n", "gim");
			matches = start.match(re);
			offset = 0;
			if(matches){
				offset -= matches.length;
			}
			setSelRange(area, newPosition, newPosition, offset);
		}
		if(readOnly){
			area.readOnly = true;
			area.blur();
		}
	}
}

function setSelRange(inputEl, selStart, selEnd, offset){
	if(inputEl.setSelectionRange) {   
		inputEl.focus();   
		inputEl.setSelectionRange(selStart, selEnd);  
	} 
	else if(inputEl.createTextRange) {
		var range = inputEl.createTextRange();   
		range.collapse(true);   
		range.moveEnd('character', selEnd + offset);   
		range.moveStart('character', selStart + offset);   
		range.select();  
	}
}

function cursorPosition(textarea){
	textarea.focus();
	if(typeof(textarea.selectionStart) == 'number'){
		return textarea.selectionStart;
	}
	else if(document.selection){
		var selection_range = document.selection.createRange().duplicate();
		if (selection_range.parentElement() == textarea) {
			var before_range = document.body.createTextRange();
			before_range.moveToElementText(textarea);
			before_range.setEndPoint("EndToStart", selection_range);
			var after_range = document.body.createTextRange();
			after_range.moveToElementText(textarea);
			after_range.setEndPoint("StartToEnd", selection_range);
			var before_finished = false, selection_finished = false, after_finished = false;
			var before_text, untrimmed_before_text, selection_text, untrimmed_selection_text, after_text, untrimmed_after_text;
			
			before_text = untrimmed_before_text = before_range.text;
			selection_text = untrimmed_selection_text = selection_range.text;
			after_text = untrimmed_after_text = after_range.text;
			do {
				if (!before_finished) {
					if (before_range.compareEndPoints("StartToEnd", before_range) == 0) {
						before_finished = true;
					} 
					else {
						before_range.moveEnd("character", -1)
						if (before_range.text == before_text) {
							untrimmed_before_text += "\r\n";
						} else {
							before_finished = true;
						}
					}
				}
				if (!selection_finished) {
					if (selection_range.compareEndPoints("StartToEnd", selection_range) == 0) {
						selection_finished = true;
					} 
					else {
						selection_range.moveEnd("character", -1)
						if (selection_range.text == selection_text) {
							untrimmed_selection_text += "\r\n";
						} 
						else {
							selection_finished = true;
						}
					}
				}
				if (!after_finished) {
					if (after_range.compareEndPoints("StartToEnd", after_range) == 0) {
						after_finished = true;
					} 
					else {
						after_range.moveEnd("character", -1)
						if (after_range.text == after_text) {
							untrimmed_after_text += "\r\n";
						}
						else {
							after_finished = true;
						}
					}
				}
			} while ((!before_finished || !selection_finished || !after_finished));
			return untrimmed_before_text.length;
		}
	}
}

/*
favourites.js
*/
function addToFavourites(photoId){
	url = '/us/addFavourite/' + photoId;
	if(loggedIn == '1'){
		new Ajax.Request(url,{
				onSuccess: function(response){
					if(response.responseText == 'ok'){
						alert(favAdded);
					}
					else{
						alert(response.responseText);
					}
				}
			}
		);
	}
	else{
		alert(notLogged);
	}
	return false;
}


/*
gallery.js
*/
function changeGallery(){
	newLocation = '/' + cc +'/gallery';
	country = $('chooseCountry');
	theme = $('chooseTheme');
	themeVal = theme.options[theme.selectedIndex].value;
	//top30 = $('top30');
	//top3 = $('top3');
	order = $('sortOrder');
	if(country && theme){
		//if(top30 && top30.checked){
		//	newLocation += '/top30';
		//}
		//else if(top3 && top3.checked){
		//	newLocation += '/top3';
		//}
		if(country.selectedIndex !== null){
			newLocation += '/' + country.options[country.selectedIndex].value;
		}
		if(themeVal){
			newLocation += '/theme:' + themeVal;
		}
		if(order && order.selectedIndex !== null){
			newLocation += '/by:' + order.options[order.selectedIndex].value;
		}
		newLocation = newLocation.replace(' ', '+');
		document.location = newLocation;
	}
}
/*
main_page.js
*/
function showTab(tab){
	clearTimeout(t);
	t = setTimeout("changeTab()", 30000);
	var tab1 = $('tab1');
	var tab2 = $('tab2');
	var tab3 = $('tab3');
	tab1.style.display = 'none';
	tab2.style.display = 'none';
	tab3.style.display = 'none';
	$('tab1-head').removeClassName('active');
	$('tab2-head').removeClassName('active');
	$('tab3-head').removeClassName('active');
	if(tab == 'tab1'){
		tab1.style.display = '';
		$('tab1-head').addClassName('active');
	}
	else if(tab == 'tab2'){
		tab2.style.display = '';
		$('tab2-head').addClassName('active');
	}
	else if(tab == 'tab3'){
		tab3.style.display = '';
		$('tab3-head').addClassName('active');
	}
}

function changeTab(){
	var tab1 = $('tab1');
	var tab2 = $('tab2');
	var tab3 = $('tab3');
	if(tab1 && tab2 && tab3){
		tab1.style.display;
		tab2.style.display;
		tab3.style.display;
		if(!tab1.style.display){
			tab1.style.display = 'none';
			$('tab1-head').removeClassName('active');
			$('tab2-head').addClassName('active');
			tab2.style.display = '';
		}
		else if(!tab2.style.display){
			tab2.style.display = 'none';
			$('tab2-head').removeClassName('active');
			$('tab3-head').addClassName('active');
			tab3.style.display = '';
		}
		else if(!tab3.style.display){
			tab3.style.display = 'none';
			$('tab3-head').removeClassName('active');
			$('tab1-head').addClassName('active');
			tab1.style.display = '';
		}
	}
	t = setTimeout("changeTab()", tabTimeout);
}

/*
search.js
*/
function trim(str){
	return str.replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, ''); 
}

function searchPhotos(){
	newLocation = '/' + cc +'/search';
	type = document.getElementById('SearchType');
	query = document.getElementById('SearchQuery');
	if(type && query){
		if(type.selectedIndex !== null){
			newLocation += '/' + type.options[type.selectedIndex].value;
			query.value = trim(query.value);	
			re = new RegExp('[\`\~\!\@\#\$\%\^\&\*\(\)\+\=\[\{\}\;\'\\\:\"\|\,\.\/\<\>\?\"]|]','igm');
			query.value = query.value.replace(re,'');

			if(query.value){
				newLocation += '/' + encodeURIComponent(query.value);
			}
		}
		newLocation = newLocation.replace(' ', '+');
		document.location = newLocation;
	}
}

/*
select_tags.js
*/
function selectTag(srcSelect){
	if(srcSelect.selectedIndex != -1){
		srcSelectedIdx = srcSelect.selectedIndex;
		srcSelectedOptn = srcSelect.options[srcSelectedIdx];
		srcSelectId = srcSelect.id.split('_');

		photoId = srcSelectId[1];
		srcSelectName = srcSelectId[0];

		if(srcSelectName == 'selectedtags'){
			dstSelectId = 'predefinedtags_' + photoId;
		}
		else{
			dstSelectId = 'selectedtags_' + photoId;
		}
		
		dstSelect = document.getElementById(dstSelectId);
		dstSelectOptn = new Option(srcSelectedOptn.text, srcSelectedOptn.value);
		dstSelect.options[dstSelect.options.length] = dstSelectOptn;
		srcSelect.options[srcSelectedIdx] = null;
		srcSelect.selectedIndex = -1;
	}
}

function checkTitles(){
	inputs = document.getElementsByTagName('input');
	ok = true;
	for(i=0, len = inputs.length; i< len; i++){
		input = inputs[i];
		elems = input.id.split('_');
		if(elems[0] == 'title'){
			document.getElementById('titles_required_' + elems[1]).style.display = 'none';
			input.value = trim(input.value);
			if(input.value.length == 0){
				document.getElementById('titles_required_' + elems[1]).style.display = '';
				ok = false;
			}
		}
	}
	return ok;
}

function setTags(){
	selects = document.getElementsByTagName('select');
	for(i=0, len = selects.length; i< len; i++){
		select = selects[i];
		elems = select.id.split('_');
		if(elems[0] == 'selectedtags'){
			if(select.options.length){
				for(j=0, oLen = select.options.length; j<oLen; j++){
					select.options[j].selected = true;
				}
			}
		}
	}
}

function checkForm(){
	setTags();
	return checkTitles();
}

/*
subdomain.js
*/
function setSubdomain(input){
	re = new RegExp('[\`\~\!\@\#\$\%\^\&\*\(\)\+\=\[\{\}\;\'\\\:\"\|\,\.\/\<\>\?\"]|]','igm');
	input.value = input.value.replace(re,'');

	subdomain = input.value;
	re1 = new RegExp('[^a-z0-9- ]','igm');
	re2 = new RegExp('[ ]+','igm');
	subdomain = subdomain.replace(re1, '');
	subdomain = subdomain.replace(re2, '-');
	userDomain = 'www.' + subdomain + domain;
	
	document.getElementById('domain').value = userDomain;
	document.getElementById('domainH').value = subdomain;
}

function check(){
	var ok = true;
	$('firstNameError').style.display='none';
	$('lastNameError').style.display='none';
	$('nickError').style.display='none';
	$('yearError').style.display='none';

	var name = $('firstName');
	name.value = trim(name.value);
	if(!name.value){
		ok = false;
		$('firstNameError').style.display='';
	}
	var name = $('lastName');
	name.value = trim(name.value);
	if(!name.value){
		ok = false;
		$('lastNameError').style.display='';
	}

	var nick = $('nick');
	nick.value = trim(nick.value);
	if(!nick.value){
		ok = false;
		$('nickError').style.display='';
	}
	else if(nick.value.toLowerCase() == 'www'){
		ok = false;
		$('nickError').style.display='';		
	}

	var year = $('UserProfileBirthYearYear');
	var yearValue = year.options[year.selectedIndex].value;
	var re =  new RegExp('^[0-9]{4}$','i');
	if(!re.test(yearValue)){
		ok = false;
		$('yearError').style.display='';
	}
	
	return ok;
}

