<?php

function dd_filter_weird_characters($str){
	
	$str = str_replace("\\\"", "\"", $str);
	$str = str_replace("\'", "'", $str);
	
	return $str;
}

/**
 * init - get the original value
 * reset - reset all the existing value
**/
function digg_digg_DataInitialer($type=""){
	
	$dd_digg = new DD_Digg();
	$dd_reddit = new DD_Reddit();
	$dd_dzone = new DD_Dzone();
	$dd_ybuzz = new DD_YBuzz();
	$dd_twitter = new DD_Twitter();
	$dd_tweetmeme = new DD_TweetMeme();
	$dd_topsy = new DD_Topsy();
	$dd_fbshareme = new DD_FbShareMe();
	$dd_fbshare = new DD_FbShare();
	$dd_fblike = new DD_FbLike();
	$dd_polladium = new DD_Polladium();
	$dd_stumbleupon = new DD_StumbleUpon();
	$dd_delicious = new DD_Delicious();
	$dd_sphinn = new DD_Sphinn();
	$dd_comments = new DD_Comments();
	$dd_gbuzz = new DD_GBuzz();
	$dd_designbump = new DD_DesignBump();
	$dd_designfloat = new DD_DesignFloat();
	$dd_webblend = new DD_WebBlend();
	$dd_blogengage = new DD_BlogEngage();

	//digg
	if(get_option(DD_DIGG_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){	
		update_option(DD_DIGG_OPTIONS, $dd_digg->wp_options);
	}else{
		$dd_digg->wp_options = get_option(DD_DIGG_OPTIONS);
		update_option(DD_DIGG_OPTIONS, $dd_digg->wp_options);
	}
	
	//reddit
	if(get_option(DD_REDDIT_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_REDDIT_OPTIONS, $dd_reddit->wp_options);
	}else{
		$dd_reddit->wp_options = get_option(DD_REDDIT_OPTIONS);
		update_option(DD_REDDIT_OPTIONS, $dd_reddit->wp_options);
	}
	
	//dzone
	if(get_option(DD_DZONE_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_DZONE_OPTIONS, $dd_dzone->wp_options);
	}else{
		$dd_dzone->wp_options = get_option(DD_DZONE_OPTIONS);
		update_option(DD_DZONE_OPTIONS, $dd_dzone->wp_options);
	}
		
	//yahoo buzz
	if(get_option(DD_YBUZZ_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_YBUZZ_OPTIONS, $dd_ybuzz->wp_options);
	}else{
		$dd_ybuzz->wp_options = get_option(DD_YBUZZ_OPTIONS);
		update_option(DD_YBUZZ_OPTIONS, $dd_ybuzz->wp_options);
	}
	
	//twitter
	if(get_option(DD_TWITTER_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_TWITTER_OPTIONS, $dd_twitter->wp_options);
	}else{
		$dd_twitter->wp_options = get_option(DD_TWITTER_OPTIONS);
		update_option(DD_TWITTER_OPTIONS, $dd_twitter->wp_options);
	}
	
	//tweetmeme
	if(get_option(DD_TWEETMEME_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_TWEETMEME_OPTIONS, $dd_tweetmeme->wp_options);
	}else{
		$dd_tweetmeme->wp_options = get_option(DD_TWEETMEME_OPTIONS);
		update_option(DD_TWEETMEME_OPTIONS, $dd_tweetmeme->wp_options);
	}
	
	//topsy
	if(get_option(DD_TOPSY_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_TOPSY_OPTIONS, $dd_topsy->wp_options);
	}else{
		$dd_topsy->wp_options = get_option(DD_TOPSY_OPTIONS);
		update_option(DD_TOPSY_OPTIONS, $dd_topsy->wp_options);
	}
	
	//fbshare.me
	if(get_option(DD_FBSHAREME_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_FBSHAREME_OPTIONS, $dd_fbshareme->wp_options);
	}else{
		$dd_fbshareme->wp_options = get_option(DD_FBSHAREME_OPTIONS);
		update_option(DD_FBSHAREME_OPTIONS, $dd_fbshareme->wp_options);
	}
	
	//facebook share
	if(get_option(DD_FBSHARE_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_FBSHARE_OPTIONS, $dd_fbshare->wp_options);
	}else{
		$dd_fbshare->wp_options = get_option(DD_FBSHARE_OPTIONS);
		update_option(DD_FBSHARE_OPTIONS, $dd_fbshare->wp_options);
	}
	
	//facebook like
	if(get_option(DD_FBLIKE_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_FBLIKE_OPTIONS, $dd_fblike->wp_options);
	}else{
		$dd_fblike->wp_options = get_option(DD_FBLIKE_OPTIONS);
		update_option(DD_FBLIKE_OPTIONS, $dd_fblike->wp_options);
	}
	
	//polladium
	if(get_option(DD_POLLADIUM_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_POLLADIUM_OPTIONS, $dd_polladium->wp_options);
	}else{
		$dd_polladium->wp_options = get_option(DD_POLLADIUM_OPTIONS);
		update_option(DD_POLLADIUM_OPTIONS, $dd_polladium->wp_options);
	}
	
	//stumbleupon
	if(get_option(DD_STUMBLEUPON_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_STUMBLEUPON_OPTIONS, $dd_stumbleupon->wp_options);
	}else{
		$dd_stumbleupon->wp_options = get_option(DD_STUMBLEUPON_OPTIONS);
		update_option(DD_STUMBLEUPON_OPTIONS, $dd_stumbleupon->wp_options);
	}
	
	//delicious
	if(get_option(DD_DELICIOUS_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_DELICIOUS_OPTIONS, $dd_delicious->wp_options);
	}else{
		$dd_delicious->wp_options = get_option(DD_DELICIOUS_OPTIONS);
		update_option(DD_DELICIOUS_OPTIONS, $dd_delicious->wp_options);
	}

	//sphin
	if(get_option(DD_SPHINN_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_SPHINN_OPTIONS, $dd_sphinn->wp_options);
	}else{
		$dd_sphinn->wp_options = get_option(DD_SPHINN_OPTIONS);
		update_option(DD_SPHINN_OPTIONS, $dd_sphinn->wp_options);
	}
	
	//comment
	if(get_option(DD_COMMENTS_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_COMMENTS_OPTIONS, $dd_comments->wp_options);
	}else{
		$dd_comments->wp_options = get_option(DD_COMMENTS_OPTIONS);
		update_option(DD_COMMENTS_OPTIONS, $dd_comments->wp_options);
	}
	
	//google buzz
	if(get_option(DD_GBUZZ_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_GBUZZ_OPTIONS, $dd_gbuzz->wp_options);
	}else{
		$dd_gbuzz->wp_options = get_option(DD_GBUZZ_OPTIONS);
		update_option(DD_GBUZZ_OPTIONS, $dd_gbuzz->wp_options);
	}
	
	//designbump
	if(get_option(DD_DESIGNDUMP_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_DESIGNDUMP_OPTIONS, $dd_designbump->wp_options);
	}else{
		$dd_designbump->wp_options = get_option(DD_DESIGNDUMP_OPTIONS);
		update_option(DD_DESIGNDUMP_OPTIONS, $dd_designbump->wp_options);
	}
	
	//designfloat
	if(get_option(DD_DESIGNFLOAT_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_DESIGNFLOAT_OPTIONS, $dd_designfloat->wp_options);
	}else{
		$dd_designfloat->wp_options = get_option(DD_DESIGNFLOAT_OPTIONS);
		update_option(DD_DESIGNFLOAT_OPTIONS, $dd_designfloat->wp_options);
	}
	
	//web blend
	if(get_option(DD_WEBBLEND_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_WEBBLEND_OPTIONS, $dd_webblend->wp_options);
	}else{
		$dd_webblend->wp_options = get_option(DD_WEBBLEND_OPTIONS);
		update_option(DD_WEBBLEND_OPTIONS, $dd_webblend->wp_options);
	}
	
	//blogengage
	if(get_option(DD_BLOGENGAGE_OPTIONS)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET){
		update_option(DD_BLOGENGAGE_OPTIONS, $dd_blogengage->wp_options);
	}else{
		$dd_blogengage->wp_options = get_option(DD_BLOGENGAGE_OPTIONS);
		update_option(DD_BLOGENGAGE_OPTIONS, $dd_blogengage->wp_options);
	}
	
	//normal buttons
	if(get_option(DD_DISPLAY_HOME)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISPLAY_HOME, DD_DISPLAY_OFF);
		
	if(get_option(DD_DISPLAY_PAGE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISPLAY_PAGE, DD_DISPLAY_OFF);
		
	if(get_option(DD_DISPLAY_POST)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISPLAY_POST, DD_DISPLAY_ON);
		
	if(get_option(DD_DISPLAY_CATEGORY)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISPLAY_CATEGORY, DD_DISPLAY_OFF);
	
	if(get_option(DD_DISPLAY_ARCHIVE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISPLAY_ARCHIVE, DD_DISPLAY_OFF);
	
	//others
	if(get_option(DD_LINE_UP)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_LINE_UP, DD_LINE_UP_HORIZONTAL);
	
	if(get_option(DD_CATEGORY_ALLOW)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_CATEGORY_ALLOW, DD_ALL_VALUE);	
	
	//twitter
	if(get_option(DD_TWITTER_SOURCE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TWITTER_SOURCE, DD_EMPTY_VALUE);
		
	//tweetmeme
	if(get_option(DD_TWEETMEME_SOURCE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TWEETMEME_SOURCE, DD_EMPTY_VALUE);
	
	if(get_option(DD_TWEETMEME_SERVICE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TWEETMEME_SERVICE, DD_EMPTY_VALUE);
		
	if(get_option(DD_TWEETMEME_SERVICE_API)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TWEETMEME_SERVICE_API, DD_EMPTY_VALUE);
	
	//topsy
	if(get_option(DD_TOPSY_SOURCE)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TOPSY_SOURCE, DD_EMPTY_VALUE);
	
	if(get_option(DD_TOPSY_THEME)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_TOPSY_THEME, DD_TOPSY_DEFAULT_THEME);
		
	//ajax left float settings
	if(get_option(DD_AJAX_LEFT_FLOAT_OPTION)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_AJAX_LEFT_FLOAT_OPTION, DD_DISPLAY_OFF);	
	
	if(get_option(DD_AJAX_INITIAL_POSITION)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_AJAX_INITIAL_POSITION, DD_AJAX_INITIAL_POSITION_VALUE);	
	
	if(get_option(DD_AJAX_SCROLLING_POSITION)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_AJAX_SCROLLING_POSITION, DD_AJAX_SCROLLING_POSITION_VALUE);	
	
	if(get_option(DD_DISABLED_CREDIT_LINK)==DD_EMPTY_VALUE || $type==DD_FUNC_TYPE_RESET)
		update_option(DD_DISABLED_CREDIT_LINK, DD_DISPLAY_OFF);
		
	//Put all into array
	$dd_buttons = array($dd_digg,$dd_reddit,$dd_dzone,$dd_ybuzz,$dd_twitter,$dd_topsy,$dd_fbshareme,
	$dd_fbshare,$dd_fblike,$dd_polladium,$dd_stumbleupon,$dd_delicious,$dd_sphinn,
	$dd_comments,$dd_gbuzz,$dd_designbump,$dd_designfloat,$dd_webblend,$dd_blogengage);
		
	//Get what display only, to increase performance
	$dd_display_buttons = array();
	foreach($dd_buttons as $obj){
	   	if( ($obj->get_append_type()!=DD_SELECT_NONE) || ($obj->get_ajax_left_float()!=DD_DISPLAY_OFF) ){
			$dd_display_buttons[$obj->name] = $obj;
	   	}
	}
	update_option(DD_DISPLAY_BUTTON, $dd_display_buttons);
		
}


/**
 * Validate whether allow the digg digg button display
 * @return true allow display, false not allow to display
 */
function digg_digg_isDisplay(){
	//get display option
    $dd_display_home = get_option(DD_DISPLAY_HOME);
	$dd_display_page = get_option(DD_DISPLAY_PAGE);
	$dd_display_post = get_option(DD_DISPLAY_POST);
	$dd_display_category = get_option(DD_DISPLAY_CATEGORY);
	$dd_display_archive = get_option(DD_DISPLAY_ARCHIVE);
	
	//TODO: can it display in feed?
	$dd_display_feed = DD_DISPLAY_OFF;

	if(is_home() && ($dd_display_home==DD_DISPLAY_ON)){
		return true;
	}else if(is_feed() && ($dd_display_feed==DD_DISPLAY_ON)){
		return true;
	}else if(is_single() && ($dd_display_post==DD_DISPLAY_ON)){
		return true;
	}else if(is_category() && ($dd_display_category==DD_DISPLAY_ON)){
		return true;
	}else if(is_page() && ($dd_display_page==DD_DISPLAY_ON)){
		return true;
	}else if(is_archive() && ($dd_display_archive==DD_DISPLAY_ON)){
		return true;
	}else{
		return false;
	}
}

/**
 * Validate whether allow the digg digg button display
 * @return true allow display, false not allow to display
 */
function digg_digg_isDisplayDisabled($content){
	
	if (preg_match("/" . DD_DISABLED . "/i", $content)) {
	    return true;
	} else {
	    return false;
	}
	
}

/**
 * Validate whether the category is allow to display
 * @return true allow display, false not allow to display
 */
function digg_digg_isCategoryAllow($category_allow){
	
	$category_allow = trim(strtolower($category_allow));
	
	//echo 'Category allow : ' . $category_allow; 
	
	if($category_allow == '' || ($category_allow==strtolower(DD_ALL_VALUE))){
		return true;
	}

	$cats_allow = explode(",", strtolower($category_allow));

	foreach((get_the_category()) as $post_category) { 
		
		//echo '<br/> category name : ' . $post_category->cat_name; 
		
		foreach($cats_allow as $cat_allow){
			
			$post_category_name = strtolower($post_category->cat_name);
			
			//echo '<br/>Category allow loop : ' . $cat_allow . '<br/> category name : ' . $post_category_name;

			if($post_category_name==trim($cat_allow)){
				//echo ' match';
				return true;
			}else{
				//echo ' not match';
			}
		}
	}
	return false;
}

function get_server() {
	$protocol = 'http';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') {
		$protocol = 'https';
	}
	$host = $_SERVER['HTTP_HOST'];
	$baseUrl = $protocol . '://' . $host;
	if (substr($baseUrl, -1)=='/') {
		$baseUrl = substr($baseUrl, 0, strlen($baseUrl)-1);
	}
	return $baseUrl;
}

?>