/**
 * 3 February 2007
 *
 * 
 * Some js for the secret ink screen.
 *
 * 
 */
var gBase;
function deleteSecretInk(base, asset_id){
	var xmlHttp;

	if(!confirm("Are you sure you want to delete this secret ink?")){
		return false;
	}

	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}

	var url = 'activate_asset';
	
	var infoString = 'b=' + base + '&a=' + asset_id + '&s=0'; 

	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-Type", 
		"application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.send(infoString);
	
	var xmldom = xmlHttp.responseXML;

	var formResult = xmldom.getElementsByTagName('form_result').item(0);

		//alert(formResult.getAttribute('message'));
	if (formResult.getAttribute('status') == 0) {
			//delete the asset
		var key = 'secret_ink_' + asset_id;
		var elm = document.getElementById(key);
		elm.parentNode.removeChild(elm);
	}else{
		alert("couldn't delete");
	}
	return false;
}

function saveSecretInk(base, asset_id){
	var xmlHttp;

	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}

	var req_tags = $('req_tags_' + asset_id);
	var req_num = $('req_num_' + asset_id);

	var ban_tags = $('ban_tags_' + asset_id);
	var ban_num = $('ban_num_' + asset_id);

	var forsale = $('forsale_' + asset_id);
	var price = $('price_' + asset_id);

	var url = 'set_secret_ink';

	var infoString = 'b=' + base + '&a=' + asset_id + '&s=0'; 
	if(req_tags)
		infoString += '&rt=' + escape(req_tags.value); 
	if(req_num)
		infoString += '&rn=' + req_num.value; 
	if(ban_tags)
		infoString += '&bt=' + escape(ban_tags.value); 
	if(ban_num)
		infoString += '&bn=' + ban_num.value; 
	if(price)
		infoString += '&p=' + price.value; 
	if(forsale)
		infoString += '&fs=' + (forsale.checked?1:0);

	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-Type", 
		"application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.send(infoString);
	
	var xmldom = xmlHttp.responseXML;

	var formResult = xmldom.getElementsByTagName( 'form_result' ).item(0);
	

	var formResult = xmldom.getElementsByTagName( 'form_result' ).item(0);
	if (formResult.getAttribute('status') == 0){
		response = "<font color='green'>" + formResult.getAttribute('message') + "</font>";			
	}else{
		response = "<font color='red'>" + formResult.getAttribute('message') + "</font>";			
	}
	showAjaxFeedback('response_' + asset_id, response);
	return false;
}

function swapImages(asset_num){
	var xmlHttp;

	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}

	var url = 'swap_secret_ink_pics';
	
	var infoString = '&a=' + asset_num;

	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-Type", 
		"application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.send(infoString);
	
	var xmldom = xmlHttp.responseXML;

	var formResult = xmldom.getElementsByTagName('form_result').item(0);

	var response;
	if (formResult.getAttribute('status') == 0){
		response = "<font color='green'>" + formResult.getAttribute('message') + "</font>";			
		var pri = document.getElementById('preview_private_' + asset_num);
		var pub = document.getElementById('preview_public_' + asset_num);

		var tmp = pri.src;
		pri.src = pub.src;
		pub.src = tmp;

		tmp = pri.parentNode.href;
		pri.parentNode.href = pub.parentNode.href;
		pub.parentNode.href = tmp;
		
		swapStat('name',asset_num);
		swapStat('size',asset_num);
		swapStat('uploaded',asset_num);
		swapStat('views',asset_num);
	}else{
		response = "<font color='red'>" + formResult.getAttribute('message') + "</font>";					
	}

	showAjaxFeedback('response_' + asset_num, response);

	return false;
}

/* swapStat is a helper function used in secret_ink_edit.php
 * that looks for the public and private versions of a 
 * stat field and swaps there values.  
 */   
function swapStat(type, id){
	var pub_id, pri_id, tmp, pub, pri;

	pub_id = 'public_' + type + '_' + id;
	pri_id = 'private_' + type + '_' + id;
	pub = document.getElementById(pub_id);
	pri = document.getElementById(pri_id);
	if(pub && pri){
		tmp = pub.innerHTML;
		pub.innerHTML = pri.innerHTML;
		pri.innerHTML = tmp;
	}
}

/* setStat is a helper function used in secret_ink_edit.php
 * that looks for a specfic stat field and fills it 
 * in with a value if it finds it
 */   
function setStat(type, id, stat, value){
	var elm, elm_id;

	elm_id = type +'_' + stat + '_' + id;
	elm = document.getElementById(elm_id);
	if(elm){
		elm.innerHTML = value;
	}
}

/*
  pops a dialog where a user can select an image while creating
  or editing a secret ink.

  param useDefaults: 
  0 = use images in this asset only
  1 = use system default images
  2 = use images from all secret inks this user has created
 */
function newImageDialog(event, imageType, asset_num, useDefaults)
{
	var xmlHttp;

	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}

	// query style post
	//
	var url = 'get_secret_ink_pics';
	var infoString = 'a=' + asset_num;
    if(useDefaults == 1){
		infoString += '&defaults=1';
	}
  	// Synchronous, so pass "false" here.
	//
	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-Type", 
		"application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.send(infoString);
	
	var xmldom = xmlHttp.responseXML;

	var formResult = xmldom.getElementsByTagName( 'form_result' ).item(0);
	
	var images = "not loaded";
	if (formResult.getAttribute('status') == 0){
		var payloadElem = xmldom.getElementsByTagName('payload').item(0);
		images = RicoUtil.getContentAsString(payloadElem);
	}

	var working = "<form method='POST' enctype='multipart/form-data' id='secret_ink_pic_form' " + 
		"action='upload_secret_ink_pic' target='target_new_pic' style='margin:0; padding:0;'>" +
		"<div class='header'>Select a " + imageType + " Image </div>" +
		"<div id='available_images_pane' class='body'>" +
		images +
		"</div>" + 
		"<div class='controls'>";
	if(!useDefaults){
		working += "<input type=\"button\" value=\"Cancel\" onclick=\"cancelNewImage();\" class='login'/>" + 
			"<input type=\"button\" value=\"Save\" onclick=\"saveSecretInkPic('" +
			imageType + "','" + asset_num + "');\" class='login'/>";
	}else if(useDefaults == 1){
		working += "<input type=\"button\" value=\"Cancel\"" +
			" onclick=\"cancelUseDefault('"+imageType+"',1);\" class='login'/>" + 
			"<input type=\"button\" value=\"Save\" onclick=\"useExistingPic('" + imageType + "');\"" +
			" class='login'/>";
	}else if(useDefaults == 2){
		working += "<input type=\"button\" value=\"Cancel\"" +
			" onclick=\"cancelUseDefault('"+imageType+"',2);\" class='login'/>" + 
			"<input type=\"button\" value=\"Save\" onclick=\"useExistingPic('" + imageType + "');\"" +
			" class='login'/>";
	}

		"</div>";
	if(!useDefaults){
		working += "<div class='footer'>" +
			" Upload a New Pic: <input class='login' type='file' name='new_secret_ink_pic'>" +
			"<input class='login' type='submit' value='Upload'>" + 
			"<input type=\"hidden\" name=\"a\" value=\"" + asset_num + "\" />" +
			"</div>";
	}
	working += "</form>";
		
	return popupDialog(event, working, 430, 300);
}

function cancelNewImage(){
	cancelPopupDialog();
}

function cancelUseDefault(type,def){
	var key = type + '_image_input';
	var pp = document.getElementById(key);
	if(pp){
		if(type == 'public')
			pp.innerHTML = '<input type="file" name="public_file" id="public_file"/>';
		else
			pp.innerHTML = '<input type="file" name="main_file" id="main_file"/>';
	}
	key = type + '_image_controls';
	pp = document.getElementById(key);
	if(pp){
		var v = '<a href="#" onclick=\'return newImageDialog(event, "'+type+'", "asdf", ' +
			def + ')\'>';
		v += '<img src="rsrc/default/img/btn_use_the_list.png"  />';
		v += '<a/>';
		pp.innerHTML = v;
	}
	cancelPopupDialog();
}

/* saveSecretInkPic(imageType,asset_num);
 * --------------------------------------
 *
 */
function saveSecretInkPic(imageType,asset_num){
	var xmlHttp;

	if(window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	} else {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}

	var url = 'set_secret_ink_pic';
 
	var pForm = document.getElementById('secret_ink_pic_form');
	var infoString = "a=" + asset_num + "&t=" + imageType;
	var filename;
	for(var j=0;j<pForm.length;j++){
		if(pForm[j].checked){
			filename = pForm[j].value;
			infoString += '&f=' + filename;
			break;
		}
	}


	// Synchronous, so pass "false" here.
	//
	xmlHttp.open("POST", url, false);
	xmlHttp.setRequestHeader("Content-Type", 
		"application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.send(infoString);
	
	var xmldom = xmlHttp.responseXML;

	var formResult = xmldom.getElementsByTagName( 'form_result' ).item(0);

	if (formResult.getAttribute('status') == 0){
		var pp = document.getElementById('preview_' + imageType + '_' + asset_num);
		if(pp){
			var payloadElem = xmldom.getElementsByTagName('preview').item(0);
			var nsrc = RicoUtil.getContentAsString(payloadElem);
			pp.src = nsrc;

			var payloadElem = xmldom.getElementsByTagName('link').item(0);
			var nsrc = RicoUtil.getContentAsString(payloadElem);
			pp.parentNode.href = nsrc;

			payloadElem = xmldom.getElementsByTagName('views');
			if(payloadElem){
				nsrc = RicoUtil.getContentAsString(payloadElem.item(0));
				setStat(imageType,asset_num,'views',nsrc);
			}

			payloadElem = xmldom.getElementsByTagName('size');
			if(payloadElem){
				nsrc = RicoUtil.getContentAsString(payloadElem.item(0));
				setStat(imageType,asset_num,'size',nsrc);
			}

			payloadElem = xmldom.getElementsByTagName('uploaded');
			if(payloadElem){
				nsrc = RicoUtil.getContentAsString(payloadElem.item(0));
				setStat(imageType,asset_num,'uploaded',nsrc);
			}

			payloadElem = xmldom.getElementsByTagName('name');
			if(payloadElem){
				nsrc = RicoUtil.getContentAsString(payloadElem.item(0));
				setStat(imageType,asset_num,'name',nsrc);
			}

		}
	}
		//cancelProfilePicDialog();
	cancelNewImage();
}

function useDefaultPic(type){
	var filename = get_pic_filename();

	if(filename){
		var key = type + '_image_input';
		var pp = document.getElementById(key);
		if(pp){
			pp.innerHTML = '<img width="60px" height="60px" src="rsrc/default/img/default_public_pics/' + 
				filename + '"/>' +
				'<input type="hidden" name="default_public_pic" value="'+ filename +'"/>';
		}
		
		key = type + '_image_controls';
		pp = document.getElementById(key);
		if(pp){
			pp.innerHTML = '<input type="button" value="Use an Uploaded Image"' +
				' onclick="cancelUseDefault(\'' + type + '\',1)">';
		}
	}

	cancelNewImage();
}

function useExistingPic(type){
	var filename = get_pic_filename();
	var parts = filename.split('/');

    // jump to useDefaultPic if parts length < 2
    // because only files from assets will contain '/'
    //
	if(parts.length < 2){
		useDefaultPic(type);
		return;
	}
	if(filename){
		var key = type + '_image_input';
		var pp = document.getElementById(key);
		if(pp){
			pp.innerHTML = '<img width="60px" src="aux.php?b=' + gBase +
				'&a=' + parts[0] + '&f=' + parts[1] + '"/>' + 
				'<input type="hidden" name="existing_' + type + '_pic" value="'+ filename +'"/>';
		}
		
		key = type + '_image_controls';
		pp = document.getElementById(key);
		if(pp){
			pp.innerHTML = '<input type="button" value="Use an Uploaded Image"' +
				' onclick="cancelUseDefault(\'' + type + '\',2)">';
		}
	}

	cancelNewImage();
}

function get_pic_filename(){
	var filename = false;
	var pForm = document.getElementById('secret_ink_pic_form');
	for(var j=0;j<pForm.length;j++){
		if(pForm[j].checked){
			filename = pForm[j].value;
			break;
		}
	}
	return filename;
}

/* addKeyword takes a word and appends it to the textarea
 * that contains the list of banned or required tags for
 * a secret ink.  
 */
function addKeyword(type,id,word){
	var tid = type + '_tags';
	if(id != '') tid += '_' + id;
	var elm = document.getElementById(tid);
	elm.value += " " + word;
}

/**** facedbukke code ****/

function fbs_custom_click(link) {
    var u = link.href;
	var t = 'A Secret Ink!';
	window.open('http://www.facebook.com/sharer.php?u='+
				encodeURIComponent(u)+'&t='+
				encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}

/**** END facedbukke code ****/

function checkNewSecretInk(form){
	var msg;

	var main_file = $('main_file');
	if(main_file && (!main_file.value || main_file.value == '')){
		msg = 'Hold it now, wait.';
		msg += '<br/>Please provide a secret image.';
		showAjaxFeedback('form_response',msg);
		return false;		
	}

	var req_tags = $('req_tags');
	if(req_tags && (!req_tags.value || req_tags.value == '')){
		msg = 'What fun is a secret when you will blab it to anyone?';
		msg += '<br/>You need at least one required keyword.';
		showAjaxFeedback('form_response',msg);
		return false;		
	}

	var num_use_req = $('num_use_req');
	if(num_use_req && (!num_use_req.value || num_use_req.value == '' || num_use_req.value == '0' )){
		msg = "You require ZERO keywords? We're not feeling it.";
		msg += '<br/>You need at least one required keyword.';
		showAjaxFeedback('form_response',msg);
		return false;		
	}

	return true;

}
