var savelist_open;
$(document).ready(function() {
	
	
	$('#forgot_password').bind('click', function () {
		open(HostName+'auth/forgot-password', '_blank',"width=600,height=300,left=400,top=300");
		return false;
	});
	
	$('#locations').bind('mouseover', function(){
		$("#locationsDiv").show();
	});
	$("#locationsDiv").bind('mouseleave', function(){
		$(this).hide();
	});
	
	$('[id^=subCrops_]').bind('mouseover', function(){
		
		$('[id^=subNode_]').hide();
		
		id = explode ('subCrops_', $(this).attr('id'));
		id = id[1];
		$("#subNode_"+id).show();
		$("#subNode_"+id+' div').show();
		
		$('#subNode_'+id).bind('mouseleave', function(){
			$(this).hide();
		});
		
	}).bind('mouseleave', function(){
		id = explode ('subCrops_', $(this).attr('id'));
		id = id[1];
		$("#subNode_"+id).hide();
		$("#subNode_"+id+' div').hide();

	});;
	
	$('#sel_loc').bind('change', function() {
		sum = $('#sel_loc option:selected').length*$('#one_loc').val()+$('#one_loc').val()*1;
		$('#sum_loc').html('Total : $'+sum);
	});
	
	$('#reset_loc').bind('click', function() {
		$('#sum_loc').html('Total : $'+$('#one_loc').val());
	});
	
	
	if ($('#login_button').val()) {
		$('#login_button').bind('click', function(){
			loginClick();
		})
	};
	
	$('#logOut').click(function() {
		logOut();
		return false;
	});
	
	$('#send_message').bind('click', function () {
		sendMessage();
		return false;
	});
	
	makeBindSavelist();
	
	$('#set_flag').bind('mouseover', function(){
		$('#div_set_flag').show();
	}).bind('mouseleave', function() {
		$('#div_set_flag').hide();
	});
	
	$('[id^=set_flag_]').bind('click', function() {
		flag_id_type = explode ('set_flag_', $(this).attr('id'));
		data = explode ('_', flag_id_type[1]);
		setFlag (data[0], data[1], data[2]);
		$('#set_flag').unbind('mouseover');
		$('#div_set_flag').hide();
		$('#response_flag').show();
		return false;
	});
	
	
	
	$('[id^=add_savelist_]').bind('click', function () {
		id = explode('add_savelist_', $(this).attr('id'));
		id = id[1];
		savelist_name = $('#new_savelist_'+id).val();
		$('#new_savelist_'+id).val('');
		
		if (savelist_name == '' || savelist_name == undefined) {
			return false;
		}
		addNewSavelist(savelist_name, id);
		showMySearchesLink();
		return false;
	});
	
	$('[id^=cancel_savelist_]').bind('click', function () {
		id = explode('cancel_savelist_', $(this).attr('id'));
		id = id[1];
		$('[id^=div_set_savelist_]').hide();
		return false;
	});
});

function showMySearchesLink() {
	$('#my_searches_link').show();
}

function makeBindSavelist () {

	$('[id^=new_savelist_0_]').unbind('click');
	$('[id^=new_savelist_0_]').bind('click', function(){
		id = explode ('new_savelist_0_', $(this).attr('id'));
		id = id[1];
		
		
		addNewSavelistForm(id, true);
		return false;
	});
	
	$('[id^=main_set_savelist_div_]').unbind('click');
	$('[id^=main_set_savelist_div_]').bind('click', function(){
		id = explode('main_set_savelist_div_', $(this).attr('id'));
		id = id[1];
		if (savelist_open == id ) {
			$('#div_set_savelist_'+id).hide();
			savelist_open = '';
		} else {
			$('[id^=div_set_savelist_]').hide();
			$('#div_set_savelist_'+id).show();
			savelist_open = id;
		}
		addNewSavelistForm('', false);
		return false;
	}).bind('mouseleave', function() {
		
	});

	$('[id^=set_savelist_]').unbind ('click');
	$('[id^=set_savelist_]').bind ('click', function() {
		flag_id_type = explode ('set_savelist_', $(this).attr('id'));
		data = explode ('_', flag_id_type[1]);
		AddToSavelist (data[0], data[1], data[2]);
		$('[id^=div_set_savelist_]').hide();
		return false;
	});
	
	
}

function refreshSavelistMenu() {
}

function setMenuSavelist (data) {
	$('[id^=savelist_menu_]').html(data.html);
	makeBindSavelist();
	return;
}

var objectData = new Object;
var item_id;
var type_id;
function addNewSavelist (savelist_name, id) {
	var data = new Object;
	data.savelist_name = savelist_name;
	id = explode('_', id);
	item_id = id[0];
	type_id = id[1];
	data.item_id = item_id;
	data.type_id = type_id;

	getJSONreq('ajax/add-new-savelist', data, getResult);
	
	addNewSavelistForm('', false);
	
	makeBindSavelist();
}

function getResult (data) {
	$('#new_savelist_0_'+item_id+'_'+type_id).before('<a id="set_savelist_'+data.object.savelist_id+'_'+item_id+'_'+type_id+'"  href="#">'+data.object.savelist_name+'</a><br/>');
}


function addNewSavelistForm(id, flag) {
	
	if (flag) {
		$('#list_of_savelist_'+id).hide();
		$('#add_savelist_form_'+id).show();
	} else {
		$('[id^=list_of_savelist_]').show();
		$('[id^=add_savelist_form_]').hide();
	}
}

function AddToSavelist (savelist_id, item_id, type_id) {
	var data = new Object ;
	data.savelist_id = savelist_id;
	data.item_id = item_id;
	data.type_id = type_id;
	getJSONreq('ajax/add-to-savelist', data, afterAddSavelist);
}

function afterAddSavelist (data) {
	showMySearchesLink();	
}

function setFlag (flag, id, type) {
	var data = new Object;
	data.id = id;
	data.flag = flag;
	data.type = type;
	getJSONreq('ajax/setflag', data, afterSetFlag);
}

function afterSetFlag(result) {
	if ( result.bool == true ) {
		$('#flag_a').html('').after('<span class="red" >Flagged</span>');
		return;
	} return false;
}

function loginClick () {
	if ($('#user_email').val() == '' || $('#user_password').val() == '' ) {
		showError('login', 'email or password is empty');
		
		return false;
	}
	var data = new Object;
	data.user_email = $('#user_email').val();
	data.user_password = $('#user_password').val();
	hideError('login');
	getJSONreq('ajax/login', data, loginFn);
}

function loginFn (object) {
	user = object.object;
	if (object.error != null) {
		showError('login', String(object.error));
		return;
	}
	
	if (object.bool == true ) {
		$('#user_first_name').html('Welcome '+user.user_first_name)
		$('#userLoginDiv').show();
		$('#login_password_div').hide();
		return;
	}
}

function showError(name, text) {
	$('#'+name+'_error').html(text);
}

function hideError(name) {
	$('#'+name+'_error').html('');
}

function logOut () {
	getJSONreq('ajax/logout');
	$('#userLoginDiv').hide();
	$('#login_password_div').show();
}

function refreshList(type) {
	$('[id^='+type+']:odd').css('background','#eaeaea');
	$('[id^='+type+']:even').css('background','#ffffff');
}

function sendMessage () {
	data = new Object();
	
	data.item = $('#item_id').val();
	data.name = $('#message_name').val();
	 
	data.email = $('#message_email').val();
	string_qoute = $('#message_message').val();
	xx = string_qoute.replace('/"/g', "&quot;");
	//alert(xx);
	data.message = xx; 
	getJSONreq ( 'ajax/send-message', data, afterSendMessage);
}

function afterSendMessage (data) {
	if (data.bool == true) {
		$('#message_message').val('');
		$('#message_is_send').show();
	}
}

function explode (delimiter, string, limit) {
    // Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.  
    // 
    // version: 908.406
    // discuss at: http://phpjs.org/functions/explode
    // +     original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: kenneth
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: d3x
    // +     bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
    // *     example 2: explode('=', 'a=bc=d', 2);
    // *     returns 2: ['a', 'bc=d']
 
    var emptyArray = { 0: '' };
    
    // third argument is not required
    if ( arguments.length < 2 ||
        typeof arguments[0] == 'undefined' ||
        typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === '' ||
        delimiter === false ||
        delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function' ||
        typeof delimiter == 'object' ||
        typeof string == 'function' ||
        typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
    
    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

